第9章 排序 9.1 排序的基本概念 9.2 插入排序 9.3 选择排序 9.4 交换排序 9.5 归并排序 9.6 基数排序 9.7 内排序方法比较 9.8 外排序 9.1 排序的基本概念 1. 排序的定义 2. 排序的分类 3. 排序的稳定性 4. 排序算法评价 5. 排序算法约定 1. 排序的定义 排序就是把一组数据元素(记录)按其关键字的某种次序排列起来,使其具有一定顺序,便于进行查找。 假设待排序的n个数据元素的集合为{A0,A1,…,An-1},其相应的关键字为{K0,K1,…,Kn-1},则排序是确定一个排列K’0,K’1,…,K’n-1,使得相应的关键字满足K’0≤K’1≤…≤K’n-1(或K’0≥K’1≥…≥K’n-1),而得到n个数据元素的一个按关键字非递减(或非递增)的有序序列(A’0,A’1,…,A’n-1)。 上述排序定义中的关键字Ki是待排序的数据元素集合中的一个域,排序是以关键字为基准进行的。若是Ki主关键字,则任何一个数据元素的无序序列经排序后得到的结果是唯一的;若是Ki次关键字,则排序的结果不唯一,因为待排序的元素序列中可能存在两个或两个以上关键字相等的元素。 2. 排序的分类 数据元素数量较少 内部排序 存储位置在内存 排序 数据元素数量较大 外部排序 存储位置在外存 3. 排序的稳定性 假设在待排序的数据元素集合中,存在两个或两个以上的元素具有相同的关键字,在用某种排序方法排序后,若这些相同关键字的元素的相对次序仍然保持不变,即在排序前的序列中,Ki=Kj(0≤i≤n-1, 0≤j≤n-1,i≠j),且Ai领先于Aj(即ij),而在排序后的序列中,Ai仍领先于Aj,则称这种排序算法是稳定的;若经过排序,这些元素的相对次序发生了变化,则称这种排序算法是不稳定的。 4. 排序算法评价 ⑴时间性能 排序是数据处理中经常执行的一种操作,往往属于系统的核心部分,因此排序算法的时间开销是衡量其好坏的重要标志。通常,在排序过程中需要进行下列两种操作:其一是比较两个关键字的大小;其二是将元素从一个位置移动至另一个位置。可见,在待排序的数据元素个数(即问题规模)一定的条件下,算法的执行时间主要消耗在关键字之间的比较和元素的移动上。因而,高效率的排序算法应该具有尽可能少的关键字比较次数和尽可能少的元素的移动次数。 ⑵空间性能 空间性能是指排序过程中所需要的辅助存储空间的大小。辅助存储空间是除了存放待排序的数据元素所占用的存储空间之外,执行算法所需要的其他存储空间。 ⑶稳定性 稳定的排序算法通常是应用问题所希望的,因此,排序算法的稳定性衡量排序算法好坏的一个重要标准。 5. 排序算法约定 ⑴待排序的数据元素类型 typedef int KeyType; typedef struct { KeyType key; ┆ }ElemType; ⑵待排序的数据元素序列 ElemType A[MaxSize ]; ⑶排序有非递减有序排序和非递增有序排序两种,一般称非递减次序为升序或正序,称非递增次序为降序、逆序或反序。不失一般性,本章所有排序算法均是按关键字非递减有序设计的。 9.2 插入排序 9.2.1 插入排序的基本思想 9.2.2 直接插入排序 9.2.3 希尔排序 9.2.1 插入排序的基本思想 插入排序的基本思想是:从初始有序的子集合开始,不断地把新的数据元素插入到有序子集合中的合适位置,使有序子集合中数据元素的个数不断增加,直到有序子集合的大小等于待排序的数据元素集合的大小为止。常用的插入排序法有直接插入排序和希尔排序。希尔排序并不是直接意义的插入排序,而是希尔排序的分组概念上的插入排序,即在不断缩小组的个数时,把原各组的记录插入到新组的合适位置中。 9.2.2 直接插入排序 1. 算法思想 2. 操作示例 3. 算法描述 4. 算法分析 5. 二分插入排序 1. 算法思想 直接插入排序的基本思想是:顺序地把待排序的数据元素按其关键字值的大小插入到已排列有序的子集合的适当位置,子集合的数据元素的个数逐渐增加,直至有序子集合的大小等于待排序数据元素集合的大小为止。 假设待排序的n个数据元素存放在数组A中,则直接插入排序描述为: ①把A[0]看成是一个元素的有序子集合,然后把A[1]插入到有序子集合A[0]中去,使其成为含有2个元
您可能关注的文档
- 第9章-动量矩定理(4学时)浅析.ppt
- 第9章-高分子化学反应-2浅析.ppt
- 第9章链传动2015浅析.ppt
- 第9章酶免疫试验浅析.ppt
- 第9章内压薄壁容器的应力(4学时浅析.ppt
- 第9章通信原理浅析.ppt
- 第9章物流系统评价与优化浅析.ppt
- 第9章移动存储设备浅析.ppt
- 第9章正弦稳态电路的浅析.ppt
- 第9章紫外吸收光谱浅析.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- Q_LNKJ06-2020中负荷车辆齿轮油GL-4.pdf
- SJ∕T 10460-2016 太阳光伏能源系统图用图形符号.pdf
- 新求精德语强化教程(第4版)初级1课后练习答案(改进版) .pdf VIP
- 北师大版三年级下册数学全册教学设计(配2026年春改版教材).docx
- (2026年)跌倒坠床护理综合指南PPT课件.pptx VIP
- 工程设计应急响应方案(3篇).docx VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- ntvf调试资料解读.doc VIP
- 电影《色.戒》的叙事伦理.doc VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
原创力文档

文档评论(0)