快速排序算法
约 423 字大约 1 分钟
2025-02-17
快速排序(Quick Sort)是一种常用且高效的排序算法。它的基本思想是通过分治的思想将一个数组按照 一个参照点 分成两个子数组,然后对这两个子数组进行递归快速排序。
算法详解
- 在数组中找到一个元素作为分割参照。pivot
- 将大于该元素的归为一个数组。ArryLeft
- 将小于该元素的归于一个数组。ArryRight
- 然后按照上述逻辑递归处理两个新数组,并逐层返回当前结果
[ ...ArryLeft, pivot, ...ArryRight]
以下是使用 JavaScript 实现快速排序算法的示例代码:
function quickSort(arr) {
// 如果长度小于等于1 直接返回原数组
if (arr.length <= 1) {
return arr;
}
// 获取中间元素
var pivot = arr[Math.floor(arr.length / 2)];
var left = [];
var right = [];
// 按照大小分成两个数组
for (var i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else if (arr[i] > pivot) {
right.push(arr[i]);
}
}
// 递归排序
return quickSort(left).concat([pivot], quickSort(right));
}
var arr = [5, 3, 8, 4, 2, 7, 1, 6];
var sortedArr = quickSort(arr);
console.log(sortedArr);
在上述示例代码中,quickSort() 函数使用递归的方式对给定的数组进行排序。该函数首先选择一个中间元素作为枢轴(pivot),然后将数组分为小于枢轴和大于枢轴的两个子数组。然后,递归地对这两个子数组进行快速排序,并在最后合并这两个子数组。在上述示例代码中,数组 [5, 3, 8, 4, 2, 7, 1, 6] 经过快速排序后变为 [1, 2, 3, 4, 5, 6, 7, 8]。
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于