快速排序

public static void quickSort(int[] array, int start, int end) {
	if (start < end) {
		int middle = getMiddle(array, start, end);
		quickSort(array, 0, middle - 1);
		quickSort(array, middle + 1, end);
	}
}

private static int getMiddle(int[] array, int start, int end) {
	int baseVal = array[start];
	while (start < end) {
		while (start < end && array[end] >= baseVal) {
			end--;
		}
		array[start] = array[end];
		while (start < end && array[end] <= baseVal) {
			start++;
		}
		array[end] = array[start];
	}
	array[start] = baseVal;
	return start;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注