快速排序算法详解
创作时间:
作者:
@小白创作中心
快速排序算法详解
引用
1
来源
1.
https://m.php.cn/faq/1170230.html
快速排序是一种基于分治策略的高效排序算法。其核心思想是:每次选取一个元素作为枢轴(pivot),将数组划分成两部分,一部分小于枢轴,一部分大于枢轴,然后递归地对这两部分进行排序。
枢轴的正确位置
枢轴元素的正确位置是指:所有小于枢轴的元素位于其左侧,所有大于枢轴的元素位于其右侧。 需要注意的是,左右两侧的元素不必有序,枢轴元素处于正确位置即可。
例如,对于枢轴值为 23 的数组,以下几种情况都满足条件:
[3, 5, 6, 12, 23, 25, 24, 30]
[6, 12, 5, 3, 23, 24, 30, 25]
[3, 6, 5, 12, 23, 30, 25, 24]
寻找枢轴的正确位置
快速排序算法通过一系列比较和交换操作来确定枢轴的正确位置。 让我们以数组
[10, 4, 15, 6, 23, 40, 1, 17, 7, 8]
为例,其中 10 为枢轴:
算法会依次遍历数组,统计小于枢轴的元素个数。 如果遇到小于枢轴的元素,则需要将枢轴向前移动,为其腾出空间。
例如,遇到 4 和 6 时,需要将它们与大于 10 的元素交换位置,以确保小于 10 的元素都位于 10 的左侧。
这个过程会持续到数组末尾。最终,算法会确定枢轴需要移动的步数,从而找到其正确位置。
代码示例 (JavaScript)
以下代码展示了快速排序算法的实现:
function partition(arr, left, right) {
const pivot = arr[left];
let i = left + 1, j = right;
while (i <= j) {
while (i <= j && arr[i] <= pivot) i++;
while (i <= j && arr[j] > pivot) j--;
if (i < j) [arr[i], arr[j]] = [arr[j], arr[i]];
}
[arr[left], arr[j]] = [arr[j], arr[left]];
return j;
}
function quickSort(arr, left = 0, right = arr.length - 1) {
if (left < right) {
const pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, right);
}
return arr;
}
// 示例用法
const arr = [10, 4, 15, 6, 23, 40, 1, 17, 7, 8];
const sortedArr = quickSort(arr);
console.log(sortedArr); // 输出已排序的数组
快速排序通过递归地将数组划分成更小的子数组,并利用枢轴元素的正确位置来高效地完成排序。 其平均时间复杂度为 O(n log n),但在最坏情况下(例如数组已排序)时间复杂度会退化为 O(n²)。
热门推荐
管理和维护操作系统更新
创新助力春节档电影提前“破圈” 传统文化成票房增长新“密码”
蒸苹果一般蒸多长时间?这样做既简单又美味
DeepSeek总结我国最值钱十大证书,第五个平均年薪100万
香港首个城市级文物建筑AI数字孪生平台上线
慢性咽炎挂什么科室?一文详解五大科室诊治范围
B细胞清除疗法在自身免疫性疾病中的研究进展
网络运维简介
2024工程机械市场创新高与未来展望:中国企业引领绿色转型
一文了解中国飞天巨眼 “巡天空间望远镜” 的强大任务,与其他望远镜的区别?
CNN推荐2025年最佳旅游地点Top25!亚洲仅3个城市入榜
签订第三次劳动合同的注意事项与流程
设计分层作业融入英语课程
如何准确测试近视
孩子刚开学就厌学?这样做可有效缓解→
服务器购买指南:价格、配置与性价比全面分析
如何在信用卡还款日之前制定合理的消费计划并控制消费金额?
营业执照如何更改地址
聚焦“7+17”产业链群 南阳推动产业链高质量发展
新疆6大特色家常菜,是本地人的“心头爱”,肉食爱者垂涎的美味
天梁星的寓意及象征意义!
生产安全员:保障工作环境和员工的安全
如何分析公司的盈利能力?(ROE额ROA)
不确定时代的哲学应对:研究哲学的未来挑战与前瞻
重庆小微湿地建设的典范:梁平经验引领绿色发展之路
认知重构技术2.1:苏格拉底式提问
江西赣州“八大名小吃”,看着就让人流哈喇子,你吃过几个?
品牌一致性:在企业官网中强化品牌形象与价值观
橡胶混炼胶的“美容觉”:橡胶混炼胶停放环节的质量控制秘籍
疫情后时代的健康新趋势,远程医疗与在线问诊崛起