Java快排

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;
	}

猜你喜欢

转载自greenlv.iteye.com/blog/2342178