快速排序是一种高效而常用的排序算法。它使用分治策略,首先选取一个”基准元素”,然后将数组分为两部分,一部分包含比基准小的元素,另一部分包含比基准大的元素。然后再对这两部分递归地进行快速排序。
下面是一个简单的JavaScript实现:
“`javascript
function quickSort(arr, left = 0, right = arr.length – 1) {
if(left < right) {
let pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex – 1);
quickSort(arr, pivotIndex + 1, right);
}
return arr;
}
function partition(arr, left, right) {
let pivot = arr[right];
let i = left;
for(let j = left; j < right; j++) {
if(arr[j] < pivot) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
}
}
[arr[i], arr[right]] = [arr[right], arr[i]];
return i;
}
“`
你可以调用`quickSort()`函数来快速排序一个数组。例如,
“`javascript
let arr = [5, 3, 7, 6, 2, 9];
console.log(quickSort(arr)); // 输出: [2, 3, 5, 6, 7, 9]
“`
注意:以上代码会改变原数组,如果不想改变原数组,可以在执行函数时传入原数组的拷贝(`quickSort([…arr])`)。
暂无评论内容