快速排序快速排序,应用分而治之的思想,选择一个中间值,比它小的放在左边,比它大的放在左边比它在右边,然后调整这个将相同的方法应用于两个组,递归地。挖坑挖坑是快速回忆这个算法实现的形象名称。如果有一个数组[-1,2,4,7,8,-7,6,20],挖出第一个位置的值保存。现在有一个空坑,需要填入初始位置那时,i指向初始位置,j指向结束位置,现在i指向的地方有一个坑,j开始往前走,如果遇到的数小于中间值(这里-1),则将当前j到的位置数挖出来,填充i上的位置。现在j的位置是空的,此时i(+1后)开始活跃,向前跑。如果i指向的值比中间值(这里是-1)大,则挖出i指向的当前位置的数,填入j的位置,然后重复j的过程移动。上面的过程最终会遇到i和j(跳出循环点),恰好那里有一个空坑位置到中间值然后应用分而治之的策略,同样的方法用于剩下两组实现Java实现/***Quicksort*@paramarrint[]sortarray*@paramstartintstartposition*@paramendintendposition*/privatestaticvoidquickSort(int[]arr,int开始,intend){if(end-start==1){if(arr[start]>arr[end]){inttemp=arr[start];arr[开始]=arr[结束];arr[结束]=温度;}}elseif(end-start>1){intmiddle=arr[start];inti=开始;intj=结束;while(i!=j&&i<=end&&j>=start){while(arr[j]>=middle&&j>i){j--;}if(j>i){arr[i]=arr[j];我++;}while(arr[i]<=middle&&i
