- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
快速排序
快速排序特点
快速排序描述
快速排序伪代码
快速排序执行流程1、从数组中选择一个轴点元素(pivot)假设每次选择最后一个位置的元素为轴点(算法导论上就是这样)2、利用pivot将数组分割成两个子数组将小于pivot的元素放到pivot前面(左侧)将大于pivot的元素放在pivot后面(右侧)等于pivot的元素放哪边都可以(算法导论放在左边)3、对子数组重复进行12步操作直到数组不能再分割(子数组中只剩下一个元素)快速排序的本质:逐渐将每一个元素都转换成轴点元素,直到子数组只剩下一个元素而无法转换
快速排序最坏情况
快速排序最好情况
快速排序平均情况
快速排序递归树
快速排序总体分析如果数据已经排好序或者已经逆序的话,原始的快排算法效率不高。一边拥有剩下的所有元素,另外一边没有元素,时间复杂度为O(n2)。快速排序在最坏情况下不比插入排序快,但快速排序的平均情况效率是很高的。快排的最好情况是划分在数组中央,时间复杂度为O(nlgn)。分析划分在1/10和9/10的地方,时间复杂度也是O(nlgn),只是递归树下降慢一点。分析一次幸运,一次不幸运的情况,时间复杂度也是O(nlgn),只是递归树下降慢一点。
快速排序最坏输入假如你和你的竞争对手同时提供程序给你们的客户,而客户让你们用相互的输入来比较程序的效率,你看到你的竞争对手用的是快速排序,你可以用排好序的输入让你的竞争对手程序变慢,他也同样可以这样对你,此时有什么办法可以避免你的竞争对手用特定的输入来击败你?
快速排序随机化优化
快速排序三数取中值法优化最佳的划分是将待排序的序列分成等长的子序列,最佳的状态我们可以使用序列的中间的值,也就是第N/2个数。可是,这很难算出来,并且会明显减慢快速排序的速度。这样的中值的估计可以通过随机选取三个元素并用它们的中值作为轴点而得到。事实上,随机性并没有多大的帮助,因此一般的做法是使用左端、右端和中心位置上的三个元素的中值作为轴点。显然使用三数中值分割法消除了预排序输入的不好情形。例如待排序序列为:8149635270左边为:8,右边为0,中间为6。我们这里取三个数比较,取中间数作为轴点,则轴点为6。
谢谢!
您可能关注的文档
- 《算法导论》第00讲 课程讲解内容和算法学习目标.pptx
- 《算法导论》第2章 算法基础.pptx
- 《算法导论》第3.4章 渐近符号、递归及解法.pptx
- 《算法导论》第5章 概率分析和随机算法.pptx
- 《算法导论》第6章 堆排序.pptx
- 《算法导论》第8章 线性时间排序.pptx
- 《算法导论》第9章 中位数和顺序统计量.pptx
- 《算法导论》第10章 二叉树.pptx
- 《算法导论》第11章 散列表.pptx
- 《算法导论》第12章 二叉搜索树.pptx
- 2024年度党员干部民主生活会班子对照检查材料.docx
- 公司党委领导班子2024年度民主生活会对照检查材料4个带头方面.docx
- 市府办(政府办)领导班子2024年民主生活会会后综合情况报告.docx
- 在2025年市司法局信息宣传工作推进会上的讲话.docx
- 在2025年全省文化旅游高质量发展推进会上的讲话.docx
- 在2025年全区工业、住建大规模设备更新推进会上的讲话.docx
- 党支部2024年组织生活会民主评议党员情况总结报告_1.docx
- 2024年度组织生活会个人对照检查剖析材料.docx
- 镇党委书记2024年度民主生活会对照检查材料1.docx
- 党支部2024年组织生活会民主评议党员情况总结报告.docx
文档评论(0)