Java中的快速排序
程序员文章站
2022-03-16 19:04:53
...
public class KUSUPaixu { public static void main(String[] args) { int [] a = suzu(); System.out.println(Arrays.toString(a)); paixu(a); System.out.println(Arrays.toString(a)); } private static void paixu(int[] a) { /* * 快速排序 * *) 随机挑选一个值,作为基准值 * *) 比基准值小的,交换到左侧, * 比基准值大的,交换到右侧 * *) 对左侧执行相同运算 * *) 对右侧执行相同运算 */ soulPaixu(a,0,a.length-1); } private static void soulPaixu(int[] a, int lo, int hi) { //最简问题,范围最小时,结束递归 if(lo>=hi) { return; } //用第一个值作为基准值 int mid=a[lo]; int i=lo; int j=hi; while(i<j){ while (a[j]>mid&&i<j){ j--; } a[i]=a[j]; while (a[i]<=mid&&i<j){ i++; } a[j]=a[i]; } //循环结束后,i,j重合 //把基准值,放入i位置 a[i]=mid; //对左侧递归处理 soulPaixu(a,lo,i-1); //对右侧递归处理 soulPaixu(a,i+1,hi); } private static int[] suzu() { int [] a =new int[10]; for (int i=0;i<a.length;i++){ a[i]= new Random().nextInt(100); } return a; } }
上一篇: CSS3 动画属性
下一篇: animate.css使用步骤