1) 定义一个quickSort函数,使用快速排序法对以下数组从小到大排序 var = [85, 24, 63, 45, 17, 31, 96, 50] 实现思路: (1)在数据集之中,选择一个元素作为"基准"(pivot)。 (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。 (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。 (4)分析快速排序时间复杂度
时间: 2023-07-19 16:32:59 浏览: 161
一个用来求快速排序的算法。。
好的,下面是实现快速排序的代码:
```javascript
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
const pivot = arr[0];
const left = [];
const right = [];
for (let i = 1; 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 = [85, 24, 63, 45, 17, 31, 96, 50];
console.log(quickSort(arr)); // [ 17, 24, 31, 45, 50, 63, 85, 96 ]
```
快速排序的时间复杂度为 O(nlogn)。在最坏情况下,即每次选取的基准值都是当前序列中的最大/最小值,时间复杂度为 O(n^2)。但是在实际应用中,快速排序的平均时间复杂度为 O(nlogn),效率非常高。
阅读全文