基于JavaScript的快速排序算法
快速排序是一种常用的排序算法,其时间复杂度为O(nlogn)。它的基本思想是选择一个基准元素,将数组分成两部分,一部分比基准元素小,另一部分比基准元素大。然后对这两部分递归进行快速排序,最终得到有序数组。
以下是基于JavaScript实现的快速排序算法代码:
function quickSort(arr) {
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));
}
const arr = [3, 0, 2, 5, -1, 4, 1];
console.log(quickSort(arr)); // [-1, 0, 1, 2, 3, 4, 5]
代码中,使用了递归的方式实现快速排序。首先选择一个基准元素,这里选择数组的中间元素。然后将数组分成两部分,一部分比基准元素小,另一部分比基准元素大。再对这两部分递归进行快速排序,最后将左半部分、基准元素、右半部分拼接成有序数组。
以上是基于JavaScript实现的快速排序算法。该算法具有时间复杂度低的优点,在实际应用中具有广泛的应用价值。