package paixu;
public class QuickSortDemo {
public static void main(String[] args) {
int[] arr= {6,1,2,7,9,3,4,5,10,8};
quickSort(arr,0,arr.length-1);
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
public static void quickSort(int[] arr,int i,int j) {
int start=i;
int end=j;
if(start>end) {
return;
}
int baseNumber=arr[i];
while(start!=end) { //{6,1,2,7,9,3,4,5,10,8}
//利用end,从后往前找,找比基准数小的数字
while(true) {
if(end<=start||arr[end]<baseNumber) { //5
break;
}
end--;
}
while(true) {
if(end<=start||arr[start]>baseNumber) {//7
break;
}
start++;
}
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
int temp=arr[i];
arr[i]=arr[start];
arr[start]=temp;
quickSort(arr,i,start-1);
quickSort(arr,start+1,j);
}
}
【Java代码】快速排序
最新推荐文章于 2024-10-19 11:17:13 发布