快速排序
快速排序 quick sort:
把要排序的数据分成两部分,通常先取第一个数a1与其他数比较,
把数据区分成两部分:比a1小的在a1前面,比a1大的,在a1后面,
再按这个方法分别对这两部分数据进行排序,最后得到整个排好序的数据列。
public static void main(String[] args) {
int data[] = {6,5,8,1,3,3,0,21,10,9};
System.out.println("before sort:");
for(int i=0;i<data.length;i++){
System.out.print(data[i] + " ");
}
quickSort(data,0,data.length-1);
System.out.println();
System.out.println("after sort:");
for(int i=0;i<data.length;i++){
System.out.print(data[i] + " ");
}
}
public static void quickSort(int data[],int start,int end){
int index = 0;
if(start<end){
index = sort(data,start,end);
quickSort(data,start,index-1);
quickSort(data,index+1,end);
}
}
public static int sort(int data[],int start,int end){
int index = data[start];
while(start<end){
while(start<end && index<data[end]){
end--;
}
data[start]=data[end];
while(start<end && index>=data[start]){
start++;
}
data[end] = data[start];
}
data[start]=index;
return start;
}

浙公网安备 33010602011771号