标签:递归 color 依次 ++ while 定义 循环 排序 quic
将需要排序的数组,定义一个标准数字,和一个开始位置(下标),和一个最后位置 (下标) (标准数字是开始位置的数字) (6,8,2,9,4,12,1)
先在最后位置开始,把最后位置的数字和标准数字比较,如果最后位置的数字比标准数字大,则将最后位置向前移动一位
如果最后位置的数字比标准数字小,则将最后位置的数字赋给开始位置的数字,依次比较,先将数组排成 (1,4,2,6,8,9,12)
下面将(1,4,2,6,8,9,12)分成两个数组(1,4,2,6)和(8,9,12)
再将(1,4,2,6)数组和(8,9,12)数组进行依次递归
1 //把数组中的第0个数组作为标准数 2 int stard=arr[start]; 3 //记录需要排序的下标 4 int low=start; 5 int high=end; 6 //循环找比标准数大的数和比标准数小的数 7 while(low<high){ 8 //右边的数字比标准数大 9 while(low<high&&stard<=arr[high]){ 10 high--; 11 } 12 //右边的数字比标准数小,使用右边的数字替换左边的数 13 arr[low]=arr[high]; 14 //如果左边的数字比标准数小 15 while(low<high&&arr[low]<=stard){ 16 low++; 17 } 18 //如果 19 arr[high]=arr[low]; 20 } 21 //把标准数据给低所在的位置 22 arr[low]=stard; 23 //处理所有的小的数字 24 quickSort(arr,start,low); 25 //处理所有的大的数字 26 quickSort(arr,low+1,end);
标签:递归 color 依次 ++ while 定义 循环 排序 quic
原文地址:https://www.cnblogs.com/axu521/p/9975736.html