/**
* 快速排序 n*logn
*
* @param array
* 数组
* @param low
* 低位
* @param high
* 高位
*
* 双重循环 外条件指针左小于右 内条件两边向中间滑 右到左,左到右 循环外 key放到左指针处
*/
private static void fastSort(int[] array, int low, int high) {
if (low >= high) {
return;
} else {
int left = low;
int right = high;
int key = array[low];
while (left < right) {
while (array[right] >= key && left < right) {
right--;
}
array[left] = array[right];
while (array[left] <= key && left < right) {
left++;
}
array[right] = array[left];
}
array[left] = key;
fastSort(array, low, left - 1);
fastSort(array, left + 1, high);
}
}
【数据结构】快速排序
最新推荐文章于 2023-07-16 21:41:45 发布