本周盘点:微信阅读差两个小时,博客差四篇,小说差两章,另外就是写代码的时间远远不够,周六日需要做的事情就是将这些未完成的任务必须超额度完成,还有就是公众号、博客的学习。
快速排序的核心思想
理解快速排序需要掌握以下几点关键:1. While循环的使用。2. 中间值的获取。3. 递归调用。这里要明确其核心思想,快速排序就是找到数组的初始和最终位置索引,通过抽取其中一个数值并以之为基准将原数组拆分成大于和小于该数值两部分的过程。
代码实现
public class ArithmeticUtil{
public static int getMiddle(int[] list,int low,int high){
int tmp=list[low];
while(low<high){
while(low<high&&list[high]>=tmp){
high--;
}
list[low]=list[high];
while(low<high&&list[low]<=tmo){
low++;
}
list[high]=list[low];
}
list[low]=tmp;
return low;
}
public static void quickSort(int[] list,int low,int high){
if(low<high){
int middle=getMiddle(list,low,high);
quickSort(list,low,middle-1);
quickSort(list,middle+1,high);
}
}
}