版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计与分析快速排序第1页,课件共28页,创作于2023年2月第六章快速排序快速排序算法快速排序的随机化版本程序演示及说明算法性能分析(三种情况)第2页,课件共28页,创作于2023年2月问题:1、什么是分治法?2、什么是排序?3、用分治法解决排序问题的思想是什么?第3页,课件共28页,创作于2023年2月1.算法的提出:由C.A.R.Hoare提出。2.定义:快速排序(quicksort)又称分划交换排序。一、快速排序算法的基本概念第4页,课件共28页,创作于2023年2月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.合并:快速排序无需合并操作。第5页,课件共28页,创作于2023年2月快速排序算法:QUICKSORT(A,p,r)1ifp<r2thenqPARTITION(A,p,r)3QUICKSORT(A,p,q)4QUICKSORT(A,q+1,r)算法描述第6页,课件共28页,创作于2023年2月二、快速排序的分解、解决过程1.分解:调用PARTITION对数组A[p..r]进行划分。
分解方法:在待排序的数组A[p..r]中选择一个元素作为分划元素,也称为主元(最简单的做法是选择数组的第一个元素为主元)。经过一趟划分操作将数组重新排列,将小于主元的元素放在原数组的底部区域,把大于主元的元素放在原数组的顶部区域。示意图:主元PARTITION75641233底部区域顶部区域73146235第7页,课件共28页,创作于2023年2月2.解决:通过递归调用快速排序对子数组A[p..q]和A[q+1..r]排序,直到划分得到的子数组中只有一个元素时,递归调用结束。3.合并:快速排序经过一趟划分操作将数组分解成两个子数组,且位于底部区域的元素均不大于主元,位于顶部区域的元素均不小于主元,所以,一旦两个子数组已经完成分别排序,整个数组自然成为有序序列。第8页,课件共28页,创作于2023年2月PARTITION实例:ijiijjijji(a)(b)(c)(d)(e)A[p..r]A[p..q]A[q+1..r]一次划分结束主元return7314623573146235751462337514623375641233第9页,课件共28页,创作于2023年2月PARTITION(A,p,r)1xA[p]2ip-13jr+14whileTRUE//三次循环就把前一个数组搞定了5dorepeatjj-16untilA[j]≤x//后面小于主元7repeatii+18untilA[i]≥x//前面的大于主元9ifi<j10thenexchangeA[i]A[j]11elsereturnj第10页,课件共28页,创作于2023年2月划分的正确性a.下标i和j不会指向数组A中区间[p..r]以外的元素。b.当PARTITION结束时,下标j不等于r。c.当PARTITION结束时,A[p..j]中的每个元素都小于等于A[j+1..r]中的每个元素。第11页,课件共28页,创作于2023年2月性能分析最坏情况划分:T(n)=T(n-1)+(n)第12页,课件共28页,创作于2023年2月最佳情况划分:T(n)=2T(n/2)+(n)=(nlgn)第13页,课件共28页,创作于2023年2月常数比例划分:T(n)=T(an)+T((1-a)n)+(n)=(nlgn)第14页,课件共28页,创作于2023年2月平均情况划分:直觉:(nlgn)差的划分可以吸收到好的划分中。第15页,课件共28页,创作于2023年2月三、快速排序的随机化版本
1.随机化版本的提出
2.在快速排序中使用随机选择策略
在快速排序算法的每一步中,当数组还没有被划分时,可将元素A[p]与A[p..r]中随机选出的一个元素交换后再执行PARTITION。
3.使用随机化版本的优点第16页,课件共28页,创作于2023年2月随机化版本的算法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)第17页,课件共28页,创作于2023年2月四、快速排序分析(n-1)²=
n²-2(n-1)最坏情况分析第18页,课件共28页,创作于2023年2月第19页,课件共28页,创作于2023年2月平均情况分析两个假设: (1)假设所有输入数据均不同; (2)假定每个排列出现是等概率的;第20页,课件共28页,创作于2023年2月关于划分过程的分析关于平均情况性态的一个递归式解递归式上述和式的紧确界第21页,课件共28页,创作于2023年2月关于划分过程的分析第22页,课件共28页,创作于2023年2月第23页,课件共28页,创作于2023年2月关于平均情
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省沈阳市于洪区2023--2024学年九年级上学期期末物理化学试题(1)-初中化学
- 《湖南卫视媒体资料》课件
- 浙江省湖州市长兴县2023-2024学年六年级上学期英语期末试卷
- 汽车行业维修培训
- 《糖尿病与肥胖》课件
- 2024年江西省南昌市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2023年贵州省铜仁市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 2021年山西省朔州市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 《文化的定義》课件
- 保险增员激励话语
- 低压配电电源质量测试记录
- 安徽省水利工程质量检测和建筑材料试验服务收费标准
- 2022课程标准解读及学习心得:大单元教学的实践与思考
- OA协同办公系统运行管理规定
- 公安警察工作汇报PPT模板课件
- 直肠癌个案护理范文结肠癌个案护理.doc
- 某小区建筑节能保温工程监理实施细则
- 污水处理中常用的专业术语
- 石英砂过滤器说明书
- 外市电引入工程实施管理要求(重要)
- 公务员录用体检表模板
评论
0/150
提交评论