-
排序逻辑
确认一个基准数,把比基准数大的放在右边,小的放在左边,递归下去实现排序
-
初始队列
-
第一轮
-
第二轮
-
-
代码示例
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)