- 1、本文档共107页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第九章排序;排序;9.1排序的基础知识;为了讨论方便,下面给出排序确切的定义。
假设含有n个记录的序列为
{r1,r2,…,rn}(9-1)
它们的关键字相应为{k1,k2,…,kn}。
对式(9-1)的记录序列进行排序就是要确定序号1,2,…,n的一种排列:
{p1,p2,…,pn}
使其相应的关键字满足如下的非递减(或非递增)的关系:
kp1≤kp2≤…≤kpn(9-2)
也就是使式(9-1)的记录序列重新排列成一个按关键字有序的序列:
{rp1≤rp2≤…≤rpn}(9-3);排序稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的。
排序不仅仅针对主关键字,也会对次关键字进行排序。
当待排序记录中的关键字ki(i?=?1,2,…,n)是主关键字,则任何一个记录的无序序列经排序后得到的结果是唯一的;
反之,若待排序的记录的关键字是次关键字,则排序所得到的记录序列的结果不唯一。
假设ki=kj?(1≤i≤n,1≤j≤n,i≠j),且在排序前的序列中ri领先于rj?(即ij)。若在排序后的序列中ri仍领先于rj,则称所用的排序方法是稳定的;反之,若使排序后的序列中rj领先于ri,则称所用的排序方法是不稳定的。;9.1.2排序的分类;按排序算法的时间复杂度来区分,则可分为三类:
简单的排序方法,其时间复杂度为O(n2);
先进的排序方法,其时间复杂度为O(nlbn);
基数排序,其时间复杂度为O(d×n)。
我们学习这些算法,并不是为了编程实现,而是通过学习来提高算法设计能力,以便能够灵活运用基本的算法去解决更复杂的问题。;对内部排序来说,排序算法的性能主要考虑以下三个方面:
(1)时间性能。
在排序过程中,一般进行两种基本操作:
①比较两个关键字的大小;
②将记录从一个位置移动到另一个位置。
其中操作①对于大多数排序方法来说是必要的,而操作②则可以通过采用适当的存储方式予以避免??
总之,高效率的内部排序算法应该是具有尽可能少的关键字比较次数和尽可能少的记录移动次数。;(2)辅助空间。
评价排序算法性能的另一个指标就是算法执行过程中需要的辅助存储空间。辅助存储空间是除了存放待排序序列所占存储空间之外,执行算法所需的额外空间。
(3)算法的复杂度。
这里是指算法本身的复杂度,而不是指算法的时间复杂度。;9.1.3存储结构
对于待排序的记录序列,有三种常见的存储表示方法:
(1)向量结构:将待排序的记录存放在一组地址连续的存储单元中。由于在这种存储方式中,记录之间的次序关系由其存储位置来决定,所以排序过程中一定要移动记录才行。
(2)链表结构:采用链表结构时,记录之间逻辑上的相邻性是靠指针来维持的,这样在排序时,就不用移动记录元素,而只需要修改指针。这种排序方式被称为链表排序。
(3)记录向量与地址向量结合:将待排序记录存放在一组地址连续的存储单元中,同时另设一个指示各个记录位置的地址向量。这样在排序过程中不移动记录本身,而修改地址向量中记录的“地址”,排序结束后,再按照地址向量中的值调整记录的存储位置。这种排序方式被称为地址排序。;本章讨论的排序算法大部分采用顺序存储。为了讨论方便,假设待排记录的关键字均为整数,均从数组中下标为1的位置开始存储,下标为0的位置存储监视哨,或空闲不用。
#defineMAXSIZE20/*一个用作示例的小顺序表的最大长度*/
typedefintKeyType;
typedefstruct
{
KeyTypekey;
OtherTypeotherdata;
}RecordType;
typedefstruct
{
RecordTyper[M
您可能关注的文档
- 数据结构与算法设计(第二版)课件 第1章 绪论.pptx
- 数据结构与算法设计(第二版)课件 6章 树与二叉树.pptx
- 数据结构与算法设计(第二版)课件 第2章 线性表 .pptx
- 数据结构与算法设计(第二版)课件 第3章 栈与队列.pptx
- 数据结构与算法设计(第二版)课件 第5章数组.pptx
- 数据结构与算法设计(第二版)课件 第7章 图.pptx
- 数据结构与算法设计(第二版)课件 第8章 查找.pptx
- 2020 年工程项目管理试题及答案题库自考用 .pdf
- 2022年人教版六年级上册数学第五单元圆单元测试题含答案 .pdf
- (必考题)小学数学六年级上册第五单元《圆》测试卷(含答案解析)精选.pdf
- (新版)一级建造师《建设工程项目管理》统考考试题库及答案 .pdf
- 2020年全国高考英语试题阅读理解分类汇编之说明文类.pdf
- 2014-2015学年度山东省滕州市实验中学高三第一学期期中考试数学试题.pdf
- 2015-2016年河南省商丘市五校联考高一上学期期末数学试卷带答案.pdf
- (全国卷I)2020年高考语文信息卷(一)(含解析).pdf
- (网络参考版)2024年普通高等学校招生全国统一考试英语试卷 全国甲卷.pdf
- 20.高中物理重力 弹力 摩擦力专题精练含答案 .pdf
- 2020年地球地理自然科学知识竞赛题库及答案(共160题) .pdf
- 1.3环境问题及其危害教学设计2023-2024学年高二地理人教版(2019)选择.pdf
- 龙岩第一中学2022-2023学年高二下学期第一次月考英语试卷(不含音频.pdf
文档评论(0)