- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
基于线性表的排序算法;回顾;预习检查;本章目标;排序的基本概念;排序的基本概念;排序的基本概念;排序的基本概念;排序的基本概念;插入排序;插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——直接插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——折半插入排序;插入排序——希尔排序;插入排序——希尔排序;插入排序——希尔排序;交换排序;交换排序;交换排序——冒泡排序(相邻比序法);交换排序——冒泡排序(相邻比序法);交换排序——冒泡排序(相邻比序法);交换排序——冒泡排序(相邻比序法);交换排序——冒泡排序(相邻比序法);交换排序——冒泡排序(相邻比序法);最后一个元素一定是关键字最小的元素:;最好的情况:
总的比较次数:
总的移动次数:
最坏的情况:
总的比较次数:
总的移动次数:;交换排序——冒泡排序(相邻比序法);算法思想:
任取一个元素(如第一个)为中心
所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表;
对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;交换排序——快速排序;交换排序——快速排序;算法分析:
每一趟的子表的形成是采用从两头向中间交替式逼近法
由于每趟中对各子表的操作都相似,可采用递归算法
可以证明,平均计算时间是O(nlog2n)
实验结果表明:就平均计算时间而言,快速排序是我们所讨论的所有内排序方法中最好的一个
快速排序是递归的,需要有一个栈存放每层递归调用时参数(新的low和high)
最大递归调用层次数与递归树的深度一致,因此,要求存储开销为O(log2n);算法分析
最坏情况:划分产生的两个序列分别包含n-1个元素和1个元素的时候。即,从??到大排好序,递归树成为单支树,每次划分只得到一个比上一次少一个对象的子序列,必须经过n-1趟才能把所有对象定位,而且第i趟需要经过n-i次关键码比较才能找到第i个对象的安放位置。时间复杂性为O(n2)
最好情况:每次划分所取的基准都恰好为中值,即每次划分都产生2个大小为n/2的区域。即,划分后,左侧右侧子序列的长度相同。时间复杂性为O(nlog2n)。
;算法分析:
时间效率:O(nlog2n)——每趟确定的元素呈指数增加
空间效率:O(log2n)——递归要用到栈空间
稳定性:不稳定——可选任一元素为支点;归并排序;2-路归并排序过程:
步骤1:初始序列看成n个有序子序列,每个子序列长度为1
步骤2:两两合并,得到?n/2?个长度为2或1的有序子序列
步骤3:再两两合并,重复直至得到一个长度为n的有序序列为止;归并排序;算法分析:
假设:前后相邻的有序段长度为h,进行两两归并后,得到长度为2h的有序段。
那么一趟归并排序将调用?n/2h?次算法merge将r1[1…n]存放在r[1…n]中。
因此时间复杂度为O(n)。
整个归并排序需进行m(m=log2n)趟2-路归并,所以归并排序总的时间复杂度为O(nlog2n)
在实现归并排序时,需要和待排记录等数量的辅助空间,空间复杂度为O(n)。;算法分析:
类似2-路归并排序,可设计多路归并排序法,归并的思想主要用于外部排序。
外部排序可分两步,
①待排序记录分批读入内存,用某种方法在内存排序,组成有序的子文件,再按某种策略存入外存。
②子文件多路归并,成为较长有序子文件,再记入外存,如此反复,直到整个待排序文件有序。
外部排序可使用外存、磁带、磁盘,最初形成有序子文件长取决于内存所能提供排序区大小和最初排序策略,归并路数取决于所能提供排序的外部设备数。
您可能关注的文档
- 数据结构——基于Python语言(微课版) 课件 T1_C语言基础.pptx
- 数据结构——基于Python语言(微课版) 课件T1_绪论(什么是数据结构).pptx
- 数据结构——基于Python语言(微课版) 课件T2_线性表(顺序表).pptx
- 数据结构——基于Python语言(微课版) 课件T3_线性表(单链表).pptx
- 数据结构——基于Python语言(微课版) 课件T4_线性表(双向链表和循环链表).pptx
- 数据结构——基于Python语言(微课版) 课件T5_线性表(应用与比较).pptx
- 数据结构——基于Python语言(微课版) 课件T7_栈与队列(队列).pptx
- 数据结构——基于Python语言(微课版) 课件T10_数组与广义表(矩阵).pptx
- 数据结构——基于Python语言(微课版) 课件T11_数组与广义表(广义表).pptx
- 数据结构——基于Python语言(微课版) 课件T12_基于线性表的查找算法.pptx
- 数据结构——基于Python语言(微课版) 课件T16_树(遍历与应用).pptx
- 数据结构——基于Python语言(微课版) 课件T17_树(转换、构建与线索化).pptx
- 数据结构——基于Python语言(微课版) 课件T18_基于树的查找算法.pptx
- 数据结构——基于Python语言(微课版) 课件T19_基于树的排序算法.pptx
- 数据结构——基于Python语言(微课版) 课件T23_计算式查找法.pptx
- 数据结构——基于Python语言(微课版) 课件T22_图(应用).pptx
- 数据结构——基于Python语言(微课版) 课件T21_图(遍历).pptx
- 数据结构——基于Python语言(微课版) 课件T15_树(二叉树).pptx
- 数据结构——基于Python语言(微课版) 课件T20_图(表示法).pptx
- 数据结构——基于Python语言(微课版) 课件T14_树(树).pptx
最近下载
- 留置看护辅警笔试题(附答案).docx VIP
- 桥梁养护人员应知应会培训——桥梁常见病害检查与养护(下部结构及附属设施)课件.pptx VIP
- 人教版小学三年级上册数学应用题专项练习3.pdf VIP
- 2025年工作总结ppt模板下载.pptx VIP
- 超构表面透镜在生物医学成像领域应用.pptx VIP
- DB54T 0248-2022 藏沙蒿栽培技术规程.docx VIP
- DB2311T 063-2023 黑河马 地方标准.pdf VIP
- 医疗器械购进管理工作程序.doc VIP
- 公路桥梁养护员应知应会-桥梁养护管理基本知识与养护检查工作流程.pdf VIP
- 2024年北京市中小学生天文观测竞赛试题附答案.doc
原创力文档


文档评论(0)