import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int [] a={7,5,4,6,1,9,2,3,22,11}; quick(a,0,a.length-1); } public static void quick(int []a,int l,int h){ if(l>=h){ return; } int p=partition(a,l,h); quick(a,l,p-1); quick(a,p+1,h); } public static int partition(int []a ,int l,int h){ int i=l,j=h,pv=a[l]; while (i<j){ while (i<j && a[j]>pv){ j--; } while (i<j && a[i]<=pv){ i++; } swap(a,i,j); } swap(a,l,i); System.out.println(Arrays.toString(a)+"i:"+i); return i; } public static void swap(int [] a,int i,int j){ int t; t=a[i]; a[i]=a[j]; a[j]=t; } }
快速排序双边循环java实现
最新推荐文章于 2024-07-06 16:47:20 发布