function quickSort(arr) {
// 如果数组长度小于等于1,直接返回数组(递归终止条件)
if (arr.length <= 1) {
return arr;
}
// 选择基准元素(这里选择数组的第一个元素作为基准)
const pivot = arr[0];
// 定义左右两个子数组
let left = []; // 小于基准的元素
let right = []; // 大于基准的元素
// 遍历数组(除了第一个元素),将元素分配到左右子数组中
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
// 递归调用quickSort对左右子数组进行排序,并将结果拼接起来
return [...quickSort(left), pivot, ...quickSort(right)];
}
// 示例调用
console.log(quickSort([3, 6, 8, 10, 1, 2, 1])); // 输出: [1, 1, 2, 3, 6, 8, 10]
这段代码实现了快速排序算法。快速排序是一种分治算法,它通过选择一个基准元素,将数组分成两部分:一部分小于基准元素,另一部分大于基准元素,然后递归地对这两部分进行排序。最终将排序好的子数组和基准元素合并,得到完整的有序数组。
上一篇:js call
下一篇:js sort()
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站