您的位置:首页 > 其它

快速排序总结

2018-01-14 15:15 169 查看
快速排序也是交换类的排序,是以一个“枢纽”为中心,将序列分成两部分,枢纽的一边全是比它小的,另一边全是比它大的。

package test;

import java.util.Arrays;

public class QuickSort {
public static void sort(int[] a) {
sort1(a, 0, a.length-1);
}

private static void sort1(int[] a, int l, int r) {
int temp;
int i=l,j=r;
if(l<r){
temp = a[l];
while(i!=j){
while(i<j&&a[j]>temp) //从右向左扫描找到一个小于temp的元素
--j;
if(i<j){
a[i]=a[j];
++i;
}
while(i<j&&a[i]<temp)
++i;
if(i<j){
a[j]=a[i];
--j;
}
}
a[j]=temp;
sort1(a,l,i-1);
sort1(a,i+1,r);

}
System.out.println(Arrays.toString(a));
}
public static void main(String[] args) {
int[] a = {4,2,5,1,6,8,3,0,7,9};
System.out.println(Arrays.toString(a));
QuickSort.sort(a);
}
}



小白原创,如有错误请指导改正,未经作者允许,禁止转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: