帮我写一个js快排方法并加上注释
时间: 2023-08-04 12:32:34 浏览: 95
当然可以! 下面是一个简单的 JavaScript 快速排序算法,已经加上注释以帮助你更好地理解代码:
```javascript
/**
* 快速排序
* @param {Array} arr 需要排序的数组
* @returns {Array} 排序后的数组
*/
function quickSort(arr) {
// 如果数组长度小于等于1,直接返回
if (arr.length <= 1) {
return arr;
}
// 选择基准值
const pivotIndex = Math.floor(arr.length / 2);
const pivot = arr.splice(pivotIndex, 1)[0];
// 定义左右两个数组
const left = [];
const right = [];
// 遍历数组,比基准值小的放左边,比基准值大的放右边
for (let i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
// 递归调用快速排序并拼接结果
return quickSort(left).concat([pivot], quickSort(right));
}
```
这个快排算法的时间复杂度为 O(n log n),是一种比较快速的排序算法。
阅读全文