首页 > 编程语言 > 详细

快速排序并得出下标

时间:2020-01-09 18:33:16      阅读:85      评论:0      收藏:0      [点我收藏+]
/**
* 快速排序并得出下标
*
* @param array
* @param start
* @param end
* @param indexArr
* @return
*/
private int[] quickSort(int[] array, int start, int end, int[] indexArr) {
int low = start;
int high = end;
int key = array[low];
int curIndex = indexArr[low];
while (low < high) {
while (key < array[high] && low < high) high--;
array[low] = array[high];
indexArr[low] = high;
while (key > array[low] && low < high) low++;
array[high] = array[low];
indexArr[high] = low;
}
array[high] = key;
indexArr[high] = curIndex;

if (low - 1 > start) quickSort(array, start, low - 1, indexArr);
if (high + 1 < end) quickSort(array, high + 1, end, indexArr);
return array;
}

快速排序并得出下标

原文:https://www.cnblogs.com/shengxincai/p/12172441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!