1. 程式人生 > 資訊 >小米平板 5 Pro 推送 MIUI 12.5.14 增強版:優化小米靈感觸控筆的連線性,修復網路環境不穩定時彈窗快閃的問題等

小米平板 5 Pro 推送 MIUI 12.5.14 增強版:優化小米靈感觸控筆的連線性,修復網路環境不穩定時彈窗快閃的問題等

Java快速排序

/**
 * 快速排序
 *
 * @author yl
 */
public class QuickSort {

    public static void main(String[] args) {
        int[] array = {7, 6, 9, 3, 1, 5, 2, 4};
        System.out.println(Arrays.toString(quickSort(array,0,array.length-1)));
    }

    /**
     * 快速排序演算法
     * 參考:https://blog.csdn.net/morewindows/article/details/6684558、https://blog.csdn.net/shujuelin/article/details/82423852
     * @param array
     * @param left
     * @param right
     * @return
     */
    public static int[] quickSort(int[] array,int left,int right) {
        if (left>right){
            return array;
        }

        // 將第一個數作為基準數
        int baseNum = array[left];
        // 左邊數的下標
        int leftIndex=left;
        // 右邊數的下標
        int rightIndex=right;

        while (leftIndex < rightIndex) {
            // 從右邊開始找第一個小於基準數的數的下標
            while (leftIndex < rightIndex && array[rightIndex] >= baseNum) {
                rightIndex--;
            }
            // 從左邊開始找第一個大於基準數的數的下標
            while (leftIndex < rightIndex && array[leftIndex] <= baseNum) {
                leftIndex++;
            }
            // 將找到的數左右互換
            if (leftIndex<rightIndex){
                int temp=array[leftIndex];
                array[leftIndex]=array[rightIndex];
                array[rightIndex]=temp;
            }
        }

        // 當左邊下標等於右邊下標時,將基準數和該下標對應數互換
        array[left]=array[leftIndex];
        array[leftIndex]=baseNum;

        // 遞迴呼叫
        quickSort(array,left,rightIndex-1);
        quickSort(array,rightIndex+1,right);

        return array;
    }

}
記得快樂