快排的算法思想,这位兄台讲得很是不错:
下面这是我用java写的
private static void quickSort(int[] array, int start, int end) {
// 一定要做异常return
if (start > end) return;
int standard = array[start];
int j = end;
int i = start;
while (i < j) {
// 等于号很重要! 且必须比较 i 和 j 的相对大小,跟 start 和 end 无关
while (array[j] >= standard && i < j) {
j--;
}
// 等于号很重要! 且必须比较 i 和 j 的相对大小,跟 start 和 end 无关
while (array[i] <= standard && i < j) {
i++;
}
if (i < j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
int temp = array[start];
array[start] = array[j];
array[j] = temp;
quickSort(array, start, j - 1);
quickSort(array, j + 1, end);
}