《算法与数据结构》第8章 排序及基本算法ppt

《算法与数据结构》第8章 排序及基本算法ppt

ID:27752789

大小:1.65 MB

页数:151页

时间:2018-12-05

《算法与数据结构》第8章 排序及基本算法ppt_第1页
《算法与数据结构》第8章 排序及基本算法ppt_第2页
《算法与数据结构》第8章 排序及基本算法ppt_第3页
《算法与数据结构》第8章 排序及基本算法ppt_第4页
《算法与数据结构》第8章 排序及基本算法ppt_第5页
资源描述:

《《算法与数据结构》第8章 排序及基本算法ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、算法与数据结构第8章排序及基本算法排序及基本算法为了便于检索,人们通常希望能在计算机中保存的数据是按关键字值大小排列的有序表。这是因为对于有序表可以采用检索效率较高的二分法检索算法,其平均检索长度为log2(n+1)-1;而对于无序表只能进行顺序检索,其平均检索长度为(n+1)/2。又如为了方便检索,需要构造二叉检索树、B树和B+树等树表,构造这些树表的过程本身就是一个排序的过程。在现今的计算机系统中,有相当大的一部分CPU时间开销是用于对数据的排序整理上的。因此,学习和研究各种排序算法,分析并设计出高效适用的排序算法,是摆在计算机科学工作者面前的重要

2、课题之一。第8章排序及基本算法8.1排序的基本概念8.2插入排序8.3交换排序8.4选择排序8.5归并排序8.6基数排序8.7各种内部排序方法的比较和选择8.8外部排序简介8.1排序的基本概念排序是数据处理中的重要运算,其功能是将一组数据元素(或记录)的任意序列,经重新排列整理成为按关键字值大小有序的序列。排序的实际应用领域也是非常广泛的。例如在实际问题的数据处理中常会遇到这样的情况,需要把若干名字如人名、地名、国名、书名、校名、物名等按字母顺序列表;需要把若干数值如各种考试分数、田赛的长度、径赛的时间等按成绩次序排名;需要把若干不同属性的记录按照某种

3、方法排列次序……。所有这些都是排序问题,都需要把一组数据元素或记录按照某种特定的次序排列起来。排序的基本概念(续)排序的确切定义可以描述为:设(R1,R2…Rn)是某文件的n个记录,其相应的关键字为(K1,K2…Kn)。排序(sort)是这样一种操作,它确定文件中n个记录的一种排列(Rj1,Rj2…Rjn),使得其相应关键字满足递增(即不减)关系Kj1≤Kj2≤…≤Kjn或递减(即不增)关系Kj1≥Kj2≥…≥Kjn。若关键字满足递增(即不减)关系时,称作按关键字升序排序(ascendingsort);若关键字满足递减(即不增)关系时,称作按关键字降序

4、排序(descendingsort)。排序的基本概念(续)在前面定义中,关键字Ki(i=1,2…n)称作排序码(sortcode)。排序码可以是记录的主关键字,也可以是次关键字,或者是多个关键字的组合(即组合关键字)。当排序码是主关键字时,由于主关键字可以惟一标识一个记录,所以排序结果是惟一的。当排序码是次关键字时,同一关键字值可能标识了两个或两个以上的记录,所以排序结果不惟一。排序的基本概念(续)若相同关键字值的记录在排序前后的相对位置不会发生改变,即若Ri与Rj的关键字相同(Ki=Kj)且在排序前Ri在Rj之前,排序后的Ri仍在Rj之前,则称所用的

5、排序算法是稳定的(stable);否则,若排序前后相同关键字值的记录其相对位置可能发生改变,即排序之后的序列中有可能出现Rj在Ri之前的情况,则称所用的排序算法是不稳定的。当排序码是组合关键字时,通常称作多关键字排序,其排序结果的惟一性取决于组合关键字是否能惟一标识一个记录。排序的分类根据排序过程中待排序文件存放的位置不同,可以把排序分为内部和外部排序两大类。内部排序是指待排序文件放在内存中进行排序的排序;内部排序适用于记录个数不很多的较小待排序文件的排序;外部排序是指在待排序文件很大时,内存中不能一次容纳全部记录,还要借助于外存存放待排序文件,在排序

6、过程中需要对外存进行访问的排序;外部排序则适用于记录个数太多不能一次全部放入内存的较大待排序文件的排序。排序的分类(续)按排序中所用策略的不同:内部排序通常可以分为插入排序、选择排序、交换排序、归并排序和分配排序这五类,每一类中不同的排序算法都是基于同一策略的不同方法。外部排序多是采用多路归并方法进行排序。内部排序文件的组织形式每种内部排序方法均可在不同的存储结构上实现。通常待排序文件的组织形式有三种方式:以一维数组作为组织形式,排序过程是对记录本身进行物理重排,通过比较和判定把记录移动到合适的位置;以链表(动态链表或静态链表)作为组织形式,排序过程中

7、无需移动记录,仅需修改指针即可,通常把这类排序称为表排序;为待排序文件组织一个辅助表,如组织一张含关键字和指向记录指针的索引表,在排序过程中只需对辅助表的表目进行物理重排,不需移动记录本身,在排序结束后按辅助表调整记录位置。排序的基本概念(续)排序的方法很多,每一种方法都有自己的优缺点,适用于在不同的环境下使用,很难说哪一种方法是最好的方法。由于所需的辅助空间的量一般都不大,所以排序的时间代价是衡量排序算法的最重要的因素。内部排序的时间代价主要用关键字的比较次数和记录的移动次数来衡量;而外部排序的时间代价主要用访问外存储器的次数来衡量。排序的基本概念(

8、续)在本章主要讨论内部排序算法,以记录数组作为待排序文件的组织形式,并假定关键字均为整数,按递

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。