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

张小明 2026/1/1 14:30: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进行投诉反馈,一经查实,立即删除!

做自己的游戏网站长春网络公司

链接:39. 组合总和 题目: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidat…

张小明 2025/12/26 14:07:32 网站建设

用html5做的网站做一件代发哪个网站好

Azure 表服务与 ADO.NET 数据服务详解 1. Azure 表服务特性 在论坛、书籍和博客中,常能看到一些“专家”建议对数据进行非规范化处理以提升性能,但鲜有人解释其原理。实际上,不同表的数据通常存储在磁盘的不同文件中,甚至不同机器上。规范化操作涉及数据库连接,需要将多…

张小明 2025/12/26 22:15:48 网站建设

做网站源代码怎么下载农业信息网站 建设

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个交互式单臂路由学习应用,包含:1. 动画演示单臂路由工作原理 2. 分步骤配置向导(从创建VLAN到配置子接口) 3. 常见错误模拟与排查练习 4. 内置简易模…

张小明 2025/12/26 18:02:28 网站建设

民网东莞网站建设外贸网站怎么规划

第一章:揭秘Open-AutoGLM文档处理引擎:如何实现90% 3效率提升在企业级文档自动化场景中,传统处理方式往往依赖人工解析与规则脚本,耗时且易出错。Open-AutoGLM 引擎通过融合大语言模型(LLM)与结构化数据提取…

张小明 2025/12/28 4:27:52 网站建设

天津公司网站怎样制作wordpress自动删除p标签

EmotiVoice语音情感控制参数详解:精细调节情绪强度 在虚拟助手越来越频繁地出现在我们生活中的今天,你是否曾因为它的“冷冰冰”语气而感到一丝疏离?明明说的是生日祝福,却像在播报天气;明明是紧急警报,听起…

张小明 2025/12/27 11:55:47 网站建设

个人网站好备案吗5免费网站建站

25. K 个一组翻转链表 25. K个一组翻转链表 这题有点难啊啊啊啊&#xff0c;怎么会有人能这样想到&#xff0c;这也太聪明了吧啊啊啊 题目&#xff1a; 题解&#xff1a; class Solution {public ListNode reverseKGroup(ListNode head, int k) {if (head null || k < …

张小明 2026/1/1 7:19:38 网站建设