僧一行

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

个人理解:

给定数组下标   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);
}

 

posted on 2021-07-31 10:27  僧一行  阅读(37)  评论(0)    收藏  举报