快速排序

来源:互联网 发布:pmc编程说明书 编辑:程序博客网 时间:2024/05/07 06:23

快速排序 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;}


0 0