javascript实现快排算法
时间: 2023-11-10 15:16:43 浏览: 123
快速排序是一种常用的排序算法,它在性能上比冒泡排序和选择排序要好。快速排序不仅在实际应用中被广泛使用,而且在前端面试中也经常被提及。下面是一个用JavaScript实现快速排序的代码:
```javascript
Array.prototype.quickSort = function() {
const rec = (arr) => {
if(arr.length <= 1) return arr;
let left = [];
let right = [];
const base = arr < base) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...rec(left), base, ...rec(right)];
}
const res = rec(this);
res.forEach((item, key) => {
this[key = item;
});
}
const arr = [1, 5, 9, 3, 18, 6, 2, 7];
arr.quickSort();
console.log(arr);
```
这段代码通过Array的原型链添加了一个quickSort方法,将快速排序算法应用于数组。具体实现思路如下:
1. 定义一个递归函数rec,用于对数组进行切割和排序。
2. 若数组长度小于等于1,则直接返回数组。
3. 设置左右两个空数组,取第一个元素为基准值base。
4. 遍历数组,将小于基准值的元素放入左数组,将大于等于基准值的元素放入右数组。
5. 递归调用rec函数对左右数组进行排序,并使用扩展运算符(...)将结果与基准值合并成一个新的数组。
6. 将排序后的结果覆盖原数组中的元素。
7. 最后通过调用arr.quickSort()对数组进行快速排序,并输出结果。
这段代码的时间复杂度为O(n log n),其中n是数组的长度。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [JavaScript实现快速排序算法](https://blog.csdn.net/Yolanda_NuoNuo/article/details/119243593)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [Javascript快速排序算法详解](https://download.csdn.net/download/weixin_38614484/13608187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文
相关推荐


















