数据结构——基于Python语言(微课版) 课件T13_基于线性表的排序算法.pptx

数据结构——基于Python语言(微课版) 课件T13_基于线性表的排序算法.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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-路归并排序,可设计多路归并排序法,归并的思想主要用于外部排序。

外部排序可分两步,

①待排序记录分批读入内存,用某种方法在内存排序,组成有序的子文件,再按某种策略存入外存。

②子文件多路归并,成为较长有序子文件,再记入外存,如此反复,直到整个待排序文件有序。

外部排序可使用外存、磁带、磁盘,最初形成有序子文件长取决于内存所能提供排序区大小和最初排序策略,归并路数取决于所能提供排序的外部设备数。

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档