快速排序

来源:互联网 发布:域名邮箱 编辑:程序博客网 时间:2024/06/05 03:11


public class Quick_sort {


/**
* @param args
* yy
* n*logn
*/

public static  void print(int a[]){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"\t");
}
System.out.println();
}

public static void swap(int a[],int first,int second ){
int temp=a[first];
a[first]=a[second];
a[second]=temp;
}

public static void quick_sort(int[] a){
subsort(a,0,a.length-1);
}
public static void subsort(int[] a,int start,int end){
if(start<end){
int base=a[start];
int i=start;
int j=end+1;
while(true){
while(i<end&&a[++i]<base);
while(j>start&&a[--j]>=base);
if(i<j)swap(a,i,j);else break;
}
swap(a,start,j);
subsort(a,start,j-1);
subsort(a,j+1,end);
}
}



public static void main(String[] args) {
int[] a=new int[]{1,7,2,5,3};
print(a);
quick_sort(a);
print(a);
}


}
0 0