快速排序:取一个数字,将其变为有序的数,具体方法就是拿其他数字和它比,大于它的放在一边,小于它的放在另外一边。
public static void quickSortChild(int[] array,int left,int right){
if(left > right) return;
if(left == right) return;
int index = targetIndex(array,left,right);
quickSortChild(array,left,index-1);
quickSortChild(array,index+1,right);
}
public static int targetIndex(int[] array,int left, int right){
int tmp = array[left];
int i =left;
int j =right;
while(i<j){
while(i<j&&array[j]>=tmp){ //一定要把高位放到前边循环
j--;
}
while(i<j&&array[i]<=tmp){
i++;
}
swap(array,i,j);
}
swap(array,left,i);
return i;
}
public static void quickSort(int[] array){
quickSortChild(array,0,array.length-1);
}
public static void swap(int[] array,int x ,int y ){
int tmp = array[x];
array[x] = array[y];
array[y] = tmp;
}
本文深入讲解了快速排序算法的工作原理及实现过程。通过选取基准值,将数组分为两部分,左边元素小于等于基准值,右边元素大于基准值,递归进行排序,最终达到整个数组有序。文中提供了详细的代码实现。
58万+

被折叠的 条评论
为什么被折叠?



