武汉理工大学:《数据结构》 第八章 排序

第八章排序 甚本概念 排序的定义 二、内部排序 三、内部排序方法的分类 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 第八章 排序 一、排序的定义 二、内部排序 三、内部排序方法的分类 基本概念

排序基本概念 排序(sort)或分类 所谓排序,就是要整理文件中的记录,使 之按关键字递增(或递减)次序排列起来。其确 切定义如下: 的关键字分别为,…。,其相应 输入:n个记录R1,R2,…,R 输出:R1,R12,…,R,使得 K1≤K12≤≤Kn。(或K≥K12≥,K1) 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 一 排序基本概念 排序(sort)或分类 所谓排序,就是要整理文件中的记录, 使 之按关键字递增(或递减)次序排列起来。其确 切定义如下: 输入:n个记录R1,R2,…,Rn,其相应 的关键字分别为K1,K2,…,Kn。 输出:Ril,Ri2,…,Rin,使得 Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)

1.被排序对象一文件 被排序的对象-文件由一组记录组成。 记录则由若干个数据项(或域)组成。其中 有一项可用来标识一个记录,称为关键字项。 该数据项的值称为关键字(Key) 注意:在不易产生混淆时,将关键字项简称 为关键字。 2.排序运算的依据一关键字 用来作排序运算依据的关键字,可以是数字 类型,也可以是字符类型。 关键字的选取应根据问题的要求而定。 <心 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 1.被排序对象--文件 被排序的对象--文件由一组记录组成。 记录则由若干个数据项(或域)组成。其中 有一项可用来标识一个记录,称为关键字项。 该数据项的值称为关键字(Key)。 注意: 在不易产生混淆时,将关键字项简称 为关键字。 2.排序运算的依据--关键字 用来作排序运算依据的关键字,可以是数字 类型,也可以是字符类型。 关键字的选取应根据问题的要求而定

【例】在高考成绩统计中将每个考生作为一个 记录。每条记录包含准考证号、姓名、各科的 分数和总分数等项内容。若要惟一地标识一个 考生的记录,则必须用"准考证号"作为关键字 若要按照考生的总分数排名次,则需用"总分 数"作为关键字。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 【例】在高考成绩统计中将每个考生作为一个 记录。每条记录包含准考证号、姓名、各科的 分数和总分数等项内容。若要惟一地标识一个 考生的记录,则必须用"准考证号"作为关键字。 若要按照考生的总分数排名次,则需用"总分 数"作为关键字

排序的稳定性 当待排序记录的关键字均不相同时,排序结 果是惟一的,否则排序结果不唯 在待排序的文件中,若存在多个关键字相同 的记录,经过排序后这些具有相同关键字的记 录之间的相对次序保持不变,该排序方法是稳 定的;若具有相同关键字的记录之间的相对次 序发生变化,则称这种排序方法是不稳定的。 注意 排序算法的稳定性是针对所有输入实例而 言的。即在所有可能的输入实例中,只要有 个实例使得算法不满足稳定性要求,则该排序 算法就是不稳定的。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 排序的稳定性 当待排序记录的关键字均不相同时,排序结 果是惟一的,否则排序结果不唯一。 在待排序的文件中,若存在多个关键字相同 的记录,经过排序后这些具有相同关键字的记 录之间的相对次序保持不变,该排序方法是稳 定的;若具有相同关键字的记录之间的相对次 序发生变化,则称这种排序方法是不稳定的。 注意: 排序算法的稳定性是针对所有输入实例而 言的。即在所有可能的输入实例中,只要有一 个实例使得算法不满足稳定性要求,则该排序 算法就是不稳定的

排序方法的分类 1.按是否涉及数据的内、外存交换分 二m在排序过程中,若整个文件都是放在内存中 处理,排序时不涉及数据的内、外存交换则称之 为内部排序(简称内排序);反之若排序过程中要 进行数据的内、外存交换则称之为外部排序。 注意: ①内排序适用于记录个数不很多的小文件 ②外排序则适用于记录个数太多不能一次 将其全部记录放人内存的大文件。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 排序方法的分类 1.按是否涉及数据的内、外存交换分 在排序过程中,若整个文件都是放在内存中 处理,排序时不涉及数据的内、外存交换,则称之 为内部排序(简称内排序);反之,若排序过程中要 进行数据的内、外存交换,则称之为外部排序。 注意: ① 内排序适用于记录个数不很多的小文件 ② 外排序则适用于记录个数太多,不能一次 将其全部记录放人内存的大文件

2.按策略划分内部排序方法 可以分为五类:插入排序、选择排序、交 换排序、归并排序和分配排序。 排序算法分析 1.排序算法的基本操作 大多数排序算法都有两个基本的操作: (1)比较两个关键字的大小; (2)改变指向记录的指针或移动记录本身。 注意: 第(2)种基本操作的实现依赖于待排序记录的存储方式 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 2.按策略划分内部排序方法 可以分为五类:插入排序、选择排序、交 换排序、归并排序和分配排序。 排序算法分析 1.排序算法的基本操作 大多数排序算法都有两个基本的操作: (1) 比较两个关键字的大小; (2) 改变指向记录的指针或移动记录本身。 注意: 第(2)种基本操作的实现依赖于待排序记录的存储方式

2.待排文件的常用存储方式 (1)以顺序表(或直接用向量)作为存储结构 排序过程:对记录本身进行物理重排(即通过关键 字之间的比较判定,将记录移到合适的位置) (2)以链表作为存储结构 排序过程:无须移动记录,仅需修改指针。通常将 这类排序称为链表(或链式排序; (3)用顺序的方式存储待排序的记录,但同时建立 个辅助表(如包括关键字和指向记录位置的指针组成的 索引表) 排序过程:只需对辅助表的表目进行物理重排(即 只移动辅助表的表目,而不移动记录本身)。适用于难 于在链表上实现,仍需避免排序过程中移动记录的排序 方法。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 2.待排文件的常用存储方式 (1)以顺序表(或直接用向量)作为存储结构 排序过程:对记录本身进行物理重排(即通过关键 字之间的比较判定,将记录移到合适的位置) (2) 以链表作为存储结构 排序过程:无须移动记录,仅需修改指针。通常将 这类排序称为链表(或链式)排序; (3) 用顺序的方式存储待排序的记录,但同时建立一 个辅助表(如包括关键字和指向记录位置的指针组成的 索引表) 排序过程:只需对辅助表的表目进行物理重排(即 只移动辅助表的表目,而不移动记录本身)。适用于难 于在链表上实现,仍需避免排序过程中移动记录的排序 方法

3.排序算法性能评价 (1)评价排序算法好坏的标准 评价排序算法好坏的标准主要有两条: ①执行时间和所需的辅助空间 ②算法本身的复杂程度 (2)排序算法的空间复杂度 若排序算法所需的辅助空间并不依赖于问题的规模n, ≥即辅助空间是0(),则称之为就地排序(In- Placesou) ●非就地排序一般要求的辅助空间为0(n)。 (3)排序算法的时间开销 大多数排序算法的时间开销主要是关键字之间的比 较和记录的移动。有的排序算法其执行时间不仅依赖于 题的规模,还取决于输入实例中数据的状态。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 3.排序算法性能评价 (1) 评价排序算法好坏的标准 评价排序算法好坏的标准主要有两条: ① 执行时间和所需的辅助空间 ② 算法本身的复杂程度 (2) 排序算法的空间复杂度 若排序算法所需的辅助空间并不依赖于问题的规模n, 即辅助空间是O(1),则称之为就地排序(In-PlaceSou)。 非就地排序一般要求的辅助空间为O(n)。 (3) 排序算法的时间开销 大多数排序算法的时间开销主要是关键字之间的比 较和记录的移动。有的排序算法其执行时间不仅依赖于 问题的规模,还取决于输入实例中数据的状态

插入排序 °插入排序( Insertion sort)的基本思想是:每 次将一个待排序的记录,按其关键字大小插入 到前面已经排好序的子文件中的适当位置,直 到全部记录插入完成为止。 本节介绍两种插入排序方法:直接插入排序 和希尔排序。 (一)直接插入排序基本思想 1、基本思想 假设待排序的记录存放在数组Rm中。 初始时,R自成1个有序区,无序区为R2nl 从i=2起直至in为止,依次将R印插入当前的有 序区R1中成含记录的有序区
武汉理工大学华夏学院-信息工程 系 二、插入排序 插入排序(Insertion Sort)的基本思想是:每 次将一个待排序的记录,按其关键字大小插入 到前面已经排好序的子文件中的适当位置,直 到全部记录插入完成为止。 本节介绍两种插入排序方法:直接插入排序 和希尔排序。 (一)直接插入排序基本思想 1、基本思想 假设待排序的记录存放在数组R[1..n]中。 初始时,R[1]自成1个有序区,无序区为R[2..n]。 从i=2起直至i=n为止,依次将R[i]插入当前的有 序区R[1..i-1]中,生成含n个记录的有序区
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 武汉理工大学:《数据结构》 第五章 树形结构.ppt
- 武汉理工大学:《数据结构》 第二章 线性表.ppt
- 武汉理工大学:《数据结构》 第三章 栈与队列.ppt
- 武汉理工大学:《数据结构》 第七章 查找.ppt
- 武汉理工大学:《数据结构》 第一章 绪论.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第九章 多模态人机交互技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第八章 多媒体信息管理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第七章 多媒体通信网络技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第六章 多媒体编程技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第五章 多媒体软平台.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十一章 多媒体应用.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十章 分布式多媒体处理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)复习题.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第四章 多媒体硬基础.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)霍夫曼编码、预测编码、统计编码、变换编码.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术、第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第二版)第1-第7章.ppt
- 武汉理工大学:《数据结构》 第六章 图.ppt
- 武汉理工大学:《数据结构》 第四章 串、数组与广义表.ppt
- 《ASP程序设计》 源代码.doc
- 《ASP程序设计》 第一章 ASP基础.ppt
- 《ASP程序设计》 第二章 HTML基础.ppt
- 《ASP程序设计》 第三章 VBScript脚本语言.ppt
- 《ASP程序设计》 第四章 Request和Response对象.ppt
- 《ASP程序设计》 第五章 Session、Application和Server对象.ppt
- 《ASP程序设计》 第六章 ASP组件.ppt
- 《ASP程序设计》 第七章 关系数据库基础.ppt
- 《ASP程序设计》 第八章 ADO对象.ppt
- 《ASP程序设计》 第就章 设计实例.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一章 绪论 1.1 数据库系统概述 1.2 数据模型.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一章 绪论 1.2.3 最常用的数据模型 1.2.4 层次模型 1.2.5 网状模型 1.2.6 关系模型.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二章 关系数据库 2.1 关系模型概述 2.2 关系数据结构 2.3 关系的完整性.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二章 关系数据库 2.4 关系代数 2.5 关系演算 2.6 小结.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 数据定义 3.3 查询.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第三章 关系数据库标准语言SQL 3.3 查询.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第三章 关系数据库标准语言SQL 3.4 数据更新 3.5 视图.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第三章 关系数据库标准语言SQL 3.6 数据控制.ppt