快速排序算法伪代码:100000个1到100的随机数排序
- 定义快速排序函数
quickSort(arr, left, right),其中arr为待排序数组,left和right分别为左右指针 - 如果
left >= right,则返回 - 定义
i和j分别为左右指针,key为基准数,temp为交换数 - 将
arr[left]赋值给key - 当
i < j时,执行以下循环: a. 从右向左扫描,找到第一个小于key的数,将其下标赋值给jb. 从左向右扫描,找到第一个大于key的数,将其下标赋值给ic. 如果i < j,则交换arr[i]和arr[j] - 将
key与arr[left]交换 - 递归调用
quickSort(arr, left, i-1)和quickSort(arr, i+1, right)
伪代码:
function quickSort(arr, left, right) {
if (left >= right) {
return;
}
let i = left, j = right, key = arr[left], temp;
while (i < j) {
while (i < j && arr[j] >= key) {
j--;
}
while (i < j && arr[i] <= key) {
i++;
}
if (i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
arr[left] = arr[i];
arr[i] = key;
quickSort(arr, left, i-1);
quickSort(arr, i+1, right);
}
原文地址: https://www.cveoy.top/t/topic/n5hV 著作权归作者所有。请勿转载和采集!