




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计与分析快速排序第一页,共二十八页,编辑于2023年,星期三第六章快速排序快速排序算法快速排序的随机化版本程序演示及说明算法性能分析(三种情况)第二页,共二十八页,编辑于2023年,星期三问题:1、什么是分治法?2、什么是排序?3、用分治法解决排序问题的思想是什么?第三页,共二十八页,编辑于2023年,星期三1.算法的提出:由C.A.R.Hoare提出。2.定义:快速排序(quicksort)又称分划交换排序。一、快速排序算法的基本概念第四页,共二十八页,编辑于2023年,星期三3.其解决排序问题的基本思路:使用分治法。基本步骤:a.分解:数组A[p..r]被划分为两个非空子数组A[p..q]和A[q+1..r],使得A[p..q]的每一个元素都小于等于A[q+1..r]的元素。b.解决:通过递归调用快速排序对子数组A[p..q]和A[q+1..r]进行排序。c.合并:快速排序无需合并操作。第五页,共二十八页,编辑于2023年,星期三快速排序算法:QUICKSORT(A,p,r)1ifp<r2thenqPARTITION(A,p,r)3QUICKSORT(A,p,q)4QUICKSORT(A,q+1,r)算法描述第六页,共二十八页,编辑于2023年,星期三二、快速排序的分解、解决过程1.分解:调用PARTITION对数组A[p..r]进行划分。分解方法:在待排序的数组A[p..r]中选择一个元素作为分划元素,也称为主元(最简单的做法是选择数组的第一个元素为主元)。经过一趟划分操作将数组重新排列,将小于主元的元素放在原数组的底部区域,把大于主元的元素放在原数组的顶部区域。示意图:主元PARTITION75641233底部区域顶部区域73146235第七页,共二十八页,编辑于2023年,星期三2.解决:通过递归调用快速排序对子数组A[p..q]和A[q+1..r]排序,直到划分得到的子数组中只有一个元素时,递归调用结束。3.合并:快速排序经过一趟划分操作将数组分解成两个子数组,且位于底部区域的元素均不大于主元,位于顶部区域的元素均不小于主元,所以,一旦两个子数组已经完成分别排序,整个数组自然成为有序序列。第八页,共二十八页,编辑于2023年,星期三PARTITION实例:ijiijjijji(a)(b)(c)(d)(e)A[p..r]A[p..q]A[q+1..r]一次划分结束主元return7314623573146235751462337514623375641233第九页,共二十八页,编辑于2023年,星期三PARTITION(A,p,r)1xA[p]2ip-13jr+14whileTRUE//三次循环就把前一个数组搞定了5dorepeatjj-16untilA[j]≤x//后面小于主元7repeatii+18untilA[i]≥x//前面的大于主元9ifi<j10thenexchangeA[i]A[j]11elsereturnj第十页,共二十八页,编辑于2023年,星期三划分的正确性a.下标i和j不会指向数组A中区间[p..r]以外的元素。b.当PARTITION结束时,下标j不等于r。c.当PARTITION结束时,A[p..j]中的每个元素都小于等于A[j+1..r]中的每个元素。第十一页,共二十八页,编辑于2023年,星期三性能分析最坏情况划分:T(n)=T(n-1)+(n)第十二页,共二十八页,编辑于2023年,星期三最佳情况划分:T(n)=2T(n/2)+(n)=(nlgn)第十三页,共二十八页,编辑于2023年,星期三常数比例划分:T(n)=T(an)+T((1-a)n)+(n)=(nlgn)第十四页,共二十八页,编辑于2023年,星期三平均情况划分:直觉:(nlgn)差的划分可以吸收到好的划分中。第十五页,共二十八页,编辑于2023年,星期三三、快速排序的随机化版本
1.随机化版本的提出
2.在快速排序中使用随机选择策略
在快速排序算法的每一步中,当数组还没有被划分时,可将元素A[p]与A[p..r]中随机选出的一个元素交换后再执行PARTITION。
3.使用随机化版本的优点第十六页,共二十八页,编辑于2023年,星期三随机化版本的算法RANDOMIZED-PARTITION1iRANDOM(p,r)2exchangeA[p]A[i]3returnPARTITION(p,q,r)RANDOMIZED-QUICKSORT(A,p,r)1ifp<r2thenqRANDOMIZED-PARTITION(A,p,r)3RANDOMIZED-QUICKSORT(A,p,q)4RANDOMIZED-QUICKSORT(A,q+1,r)第十七页,共二十八页,编辑于2023年,星期三四、快速排序分析(n-1)²=
n²-2(n-1)最坏情况分析第十八页,共二十八页,编辑于2023年,星期三第十九页,共二十八页,编辑于2023年,星期三平均情况分析两个假设: (1)假设所有输入数据均不同; (2)假定每个排列出现是等概率的;第二十页,共二十八页,编辑于2023年,星期三关于划分过程的分析关于平均情况性态的一个递归式解递归式上述和式的紧确界第二十一页,共二十八页,编辑于2023年,星期三关于划分过程的分析第二十二页,共二十八页,编辑于2023年,星期三第二十三页,共二十八页,编辑于2023年,星期三关于平均情况性态的一个递归
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度新股东入资生物制药产业合作协议
- 2025年度电子商务平台员工劳务外包及运营合同
- 二零二五年度长租公寓退租服务保障协议
- 二零二五年度餐饮连锁生意合作合同范本
- 房产证抵押贷款合同抵押物管理协议(2025年度)
- 二零二五年度精装高层购房定金合同
- 2025年度私人宅基地买卖转让协议书及配套设施建设补充协议
- 2025年度租房押金监管及退还标准合同
- 二零二五年度文化产业投资入股协议
- 2025年黑龙江货运从业资格证的试题
- 2025年湖南有色金属职业技术学院单招职业技能测试题库参考答案
- 2025年哈尔滨幼儿师范高等专科学校单招职业技能测试题库1套
- 2025年湖南城建职业技术学院单招职业倾向性测试题库及答案一套
- 2025年佳木斯职业学院单招职业倾向性测试题库完整
- 2025广东省安全员A证考试题库
- 《酒店服务礼仪细节》课件
- 《建筑工程混凝土施工质量控制课件》
- 2025-2030年中国煤炭行业发展动态及前景趋势分析报告
- 2025年人工智能(AI)训练师职业技能鉴定考试题(附答案)
- 《稀土冶金技术史》课件-中国的稀土资源与分布
- 医学影像检查技术复习题(含参考答案)
评论
0/150
提交评论