您的位置:首页 > 其它

快速排序

2016-02-27 10:04 281 查看
public static void quicksort(int[] a){
sort(a,0,a.length-1);
}
private static void sort(int[] a, int lo, int hi){
if(hi<=lo) return;
int j = partion(a,lo,hi);
sort(a,lo,j-1);
sort(a,j+1,hi);
}
private static int partion(int[] a,int lo, int hi){
int i = lo;
int j = hi+1;
int v = a[lo];
while(i<j){
while(a[++i]<=v)if(i==hi)break;
while(a[--j]>=v)if(j==lo)break;
if(i>=j)break;
exct(a,i,j);
}
exct(a,lo,j);
return j;
}
private static void exct(int[] a, int i, int j){
int t = a[i];
a[i] = a[j];
a[j] = t;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: