Java快排
程序员文章站
2022-05-28 21:50:11
...
public static void quickSort(double[] array, int i, int j) { if (j <= i) return; int pivotIndext = (i + j) / 2; swap(array, pivotIndext, j); int k = partition(array, i - 1, j, array[j]); swap(array, j, k); quickSort(array, i, k - 1); quickSort(array, k, j); } public static int partition(double[] array, int left, int right, double pivot) { do { while (array[++left] < pivot) ; while ((left < right) & (pivot < array[--right])) ; swap(array, left, right); } while (left < right); return 0; } public static void swap(double[] data, int a, int b) { double t = data[a]; data[a] = data[b]; data[b] = t; }