1. 程式人生 > 實用技巧 >排序演算法——快速paixu

排序演算法——快速paixu

  • 排序邏輯

    確認一個基準數,把比基準數大的放在右邊,小的放在左邊,遞迴下去實現排序

    • 初始佇列

    • 第一輪

    • 第二輪

  • 程式碼示例

    public static void quickSort(int[] arr,int start, int end){
        if(start<end){
            //以第一位為基準數
            int stard = arr[start];
            //低位遊標和高位遊標
            int low = start;
            int high = end;
            while(low<high){
                //從高位往低位找,如果該數小於基準數,則把該數放在低位
                while(low<high && stard<=arr[high]){
                    high--;
                }
                arr[low] = arr[high];
                //從低位往高位找,如果該數大於基準數,則把該數放在高位
                while(low<high && stard>=arr[low]){
                    low++;
                }
                arr[high] = arr[low];
            }
            arr[low] = stard;
            quickSort(arr,start,low);
            quickSort(arr,low+1,end);
        }
    }
    
  • 時間複雜度
    O(nlogn)