//A1.java public class A1 { private final static int N = 10; public static void main(String[] args) { int a[] = new int[N]; create(a); print(a); QuickSort(a, 0, N - 1); print(a); } // 快速排序主函数 public static void QuickSort(int a[], int low, int high) { if (low < high) { int middle = exec(a, low, high); QuickSort(a, low, middle - 1); QuickSort(a, middle + 1, high); } } // 找到分界 public static int exec(int a[], int low, int high) { int b = 1; while (low < high) { if (a[low] > a[high]) { swap(a, low, high); b = (b == 1) ? 0 : 1; } switch (b) { case 0: low++; break; case 1: high--; break; } } return low;// return high; 结果一样 } // 生成随机数组 public static void create(int a[]) { for (int i = 0; i < N; i++) { a[i] = (int) (Math.random() * 50); } } // 显示数组 public static void print(int a[]) { for (int i = 0; i < N; i++) { System.out.print(a[i] + " "); } System.out.println(); } // 交换 public static void swap(int a[], int p1, int p2) { a[p1] = a[p2] + 0 * (a[p2] = a[p1]); } }
运行结果:
47 49 23 48 14 36 15 33 46 29
14 15 23 29 33 36 46 47 48 49