排序演算法——快速paixu
阿新 • • 發佈:2020-07-21
-
排序邏輯
確認一個基準數,把比基準數大的放在右邊,小的放在左邊,遞迴下去實現排序
-
初始佇列
-
第一輪
-
第二輪
-
-
程式碼示例
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)