java快速排序

package sort;

import java.util.Arrays;

public class QuickSort {

public static void main(String[] args) {
int a[] = {11,2,1,5,7,10,9,8,4,0,6};
int l=0; int h=a.length-1;
System.out.println(Arrays.toString(a));
quickSort(a,l,h);
}

public static void quickSort(int[] a,int l,int h) {
if(l>h) {
return;
}
int key = a[l];
int temp = 0;
int i=l;
int j=h;
while(i<j) {
//从右往左会找到一个比基数小的数字
while(i<j&&a[j]>=key) {
j--;
}
if(i<j)//将之前比基数小的数字前移替换掉,这是在数组右边就会留下一个坑
a[i]=a[j];
System.out.println(i);
System.out.println(j);
System.out.println(Arrays.toString(a));
//从左往右,找到比基数大的数字
while(i<j&&a[i]<=key) {
i++;
}
if(i<j)//将新找出来的数字填上刚刚数组右边留下的坑
a[j]=a[i];
System.out.println(i);
System.out.println(j);
System.out.println(Arrays.toString(a));
}
a[i]=key;
quickSort(a,l,i-1);
quickSort(a,i+1,h);
}

}

 

posted @ 2018-12-06 21:14  悔不该放开那华佗哟  阅读(124)  评论(0编辑  收藏  举报