个人理解:
给定数组下标 low 和 heigh (low < heigh)
在数组中选定基值 (被比较的值) 通过移动下标 比较数组中的值与基值 移动heigh 将小的值放前面 移动low 将大的值放后面 一直迭代直到完成排序
代码:
void mergeQuickSort(int[] arry,int low, int heigh) {
if (low < heigh) {
int i = low;
int j = heigh;
int key = arry[i];
while (i < j) {
while (i < j && arry[j] >= key) {
j--;
}
if (i < j) {
arry[i] = arry[j];
}
while (i < j && arry[i] <= key) {
i++;
}
if (i < j) {
arry[j] = arry[i];
}
}
arry[i] = key;
mergeQuickSort(arry, low, i - 1);
mergeQuickSort(arry, i + 1, heigh);
}
浙公网安备 33010602011771号