做网站做注册登录的难点深圳市龙岗区

张小明 2025/12/28 17:22:49
做网站做注册登录的难点,深圳市龙岗区,搜狗竞价推广,防水自己如何建设网站快速排序#xff08;Quick Sort#xff09;的“死穴”#xff0c;也就是它的最坏情况。简单来说#xff0c;它的意思是#xff1a;如果你运气不好#xff0c;选的基准值#xff08;Pivot#xff09;太极端#xff0c;快速排序就会变得非常慢#xff0c;慢得像冒泡排序…快速排序Quick Sort的“死穴”也就是它的最坏情况。简单来说它的意思是如果你运气不好选的基准值Pivot太极端快速排序就会变得非常慢慢得像冒泡排序一样。我来把这张图里的“行话”翻译成大白话配合具体的例子演示。1. 快速排序的理想状态 vs. 糟糕状态快速排序的核心思想是“分治”分而治之。理想情况选一个基准值比如中间大小的数它能把数组一分为二左边一半右边一半。每轮都减半速度极快。糟糕情况PPT里的情况选的基准值是最大或最小的数。它没能把数组切开只是把最边上的一个切下来了剩下的一大坨还在那一侧。2. 结合 PPT 中的例子演示PPT 里举了两个例子一个是倒序的一个是正序的。通常教科书里的快速排序默认取第一个元素作为基准值Pivot。例子 A倒序数组(90, 85, 79, 74, ...)假设我们总是取第一个数做基准Pivot 90。第一轮基准90比较剩下的所有数 (85, 79, 74...) 都比 90 小。划分结果左边子序列(85, 79, 74, 68, 50, 46)也就是除了90以外的所有人右边子序列()空空如也因为没人比90大代价我们忙活了一整轮只把90这一个数排好了位置。第二轮处理左边那一堆基准85现在的第一个比较剩下的 (79, 74...) 都比 85 小。划分结果又是一边倒。85 右边是空的左边还是那一堆。结论这就像切西瓜原本想一刀两半结果你每一刀都只切下来薄薄的一层皮。你要切 N 次才能切完。例子 B正序数组(46, 50, 68, ...)道理是一样的。基准46。比较剩下的所有数 (50, 68...) 都比 46 大。划分结果左边子序列()空的右边子序列(50, 68, 74, ...)所有人都在右边3. 为什么 PPT 说“退化为冒泡排序”你看上面的过程快速排序最坏情况第一轮搞定 1 个数90第二轮搞定 1 个数85第三轮搞定 1 个数79...冒泡排序第一轮冒出一个最大值搞定1个第二轮冒出第二大值搞定1个...它们的工作效率变成一模一样的了正常快排复杂度O(nlogn) 类似树形结构层数少退化后的复杂度O(n2) 类似链表结构层数变成了 N 层非常慢4. 树形图解对比为了让你直观感受区别我画个图理想的快速排序平衡树每次都运气好选到中间值两边均匀。代码段graph TD A[50] -- B[25] A -- C[75] B -- D[10] B -- E[40] C -- F[60] C -- G[90]PPT 里的最坏情况歪脖子树每次都选到最大或最小有序数组选第一个数就会这样。代码段graph TD A[90] -- B[85] B -- C[79] C -- D[74] D -- E[68] E -- F[...]看下面这棵“歪脖子树”明显比上面的“平衡树”要深得多走的路更长所以效率极低。总结 PPT 的红框结论“快速排序不适于对原本有序或基本有序的记录序列进行排序。”这句话的意思是 如果你拿到一个数组发现它已经是排好序的或者倒序的这时候如果你还傻乎乎地用“取第一个元素当基准”的快速排序去排它那就是自寻死路效率最低。那怎么办实际工程中为了避免这种尴尬我们通常随机选基准或者三数取中取头、中、尾三个数的中间值当基准这样就能避开这种“死穴”了。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

办公用品网站模板贸易公司简介模板

OpenHands实战指南:AI驱动的智能代码助手部署与应用 【免费下载链接】OpenHands 🙌 OpenHands: Code Less, Make More 项目地址: https://gitcode.com/GitHub_Trending/ope/OpenHands 还在为复杂的开发环境配置而烦恼?OpenHands作为新…

张小明 2025/12/27 5:07:30 网站建设

集团网站建设特色大气学校网站

基于北方苍鹰优化算法优化最小二乘支持向量机(NGO-LSSVM)的数据分类预测 NGO-LSSVM分类 matlab代码,采用交叉验证抑制过拟合问题注:采用交叉验证在一定程度上抑制了过拟合问题。 注:要求 Matlab 2018B 及以上版本在数据分类预测的领域里&…

张小明 2025/12/27 5:07:30 网站建设

网页休闲游戏网站app开发网站开发教程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级视频采集系统,基于you-get核心功能扩展。要求:1) 分布式任务队列管理 2) 自动重试机制 3) 下载进度监控面板 4) 结果通知(邮件/钉钉) 5) 支持…

张小明 2025/12/27 5:07:31 网站建设

网站建设费用预算表格asp 网站图标

01 困境:数据丰饶中的洞察饥荒当代企业正陷入一种数据悖论:数据量呈指数级增长,可从中获得的实时洞察却依然稀缺。据IDC研究,全球企业数据利用率平均不足12%,大量数据资源在沉睡中贬值。问题的根源在于传统数据架构的线…

张小明 2025/12/27 5:07:32 网站建设

什么网站可以免费做视频软件青岛建网站哪个好

LobeChat:构建私有化AI助手的现代化基座 在企业纷纷拥抱大模型的时代,一个现实问题摆在面前:即便有了强大的语言模型API,普通员工依然难以高效、安全地使用这些能力。客服人员需要快速生成得体的回复,销售团队希望定制…

张小明 2025/12/27 5:07:32 网站建设

政务公开加强网站建设网站开发浏览器

Go语言凭借其出色的性能表现和简洁的语法设计,正在成为现代软件开发的首选语言。Go语言开发为开发者提供了从基础语法学习到企业级应用构建的全套解决方案,让开发者能够快速上手并构建安全可靠的应用程序。🚀 【免费下载链接】go-awesome Go …

张小明 2025/12/26 5:12:37 网站建设