- 3
- 0
- 约1.73万字
- 约 78页
- 2019-05-06 发布于广东
- 举报
第8章 排序 本章中主要介绍下列内容: 插入排序 交换排序 选择排序 归并排序 基数排序 8.1 基本概念 8.2 插入排序 8.3 交换排序 8.4 选择排序 8.5 归并排序 8.6 基数排序 8.1 基本概念 关键字 是数据元素中的某个数据项。如果某个数据项可以唯一地确定一个数据元素,就将其称为主关键字;否则,称为次关键字。 排序 是把一组无序地数据元素按照关键字值递增(或递减)地重新排列。如果排序依据的是主关键字,排序的结果将是唯一的, 排序算法的稳定性 如果在待排序的记录序列中有多个数据元素的关键字值相同,经过排序后,这些数据元素的相对次序保持不变,则称这种排序算法是稳定的,否则称之为不稳定的。 内部排序与外部排序 根据在排序过程中待排序的所有数据元素是否全部被放置在内存中,可将排序方法分为内部排序和外部排序两大类。内部排序是指在排序的整个过程中,待排序的所有数据元素全部被放置在内存中;外部排序是指由于待排序的数据元素个数太多,不能同时放置在内存,而需要将一部分数据元素放置在内存,另一部分数据元素放置在外设上,整个排序过程需要在内外存之间多次交换数据才能得到排序的结果。本章只讨论常用的内部排序方法。 排序的基本方法 内部排序主要有5种方法:插入、交换、选择、归并和基数。 趟 在排序过程中,基本动作执行一次。 排序算法的效率 评价排序算法的效率主要有两点:一是在数据量规模一定的条件下,算法执行所消耗的平均时间,对于排序操作,时间主要消耗在关键字之间的比较和数据元素的移动上,因此我们可以认为高效率的排序算法应该是尽可能少的比较次数和尽可能少的数据元素移动次数;二是执行算法所需要的辅助存储空间,辅助存储空间是指在数据量规模一定的条件下,除了存放待排序数据元素占用的存储空间之外,执行算法所需要的其他存储空间,理想的空间效率是算法执行期间所需要的辅助空间与待排序的数据量无关。 待排序记录序列的存储结构 待排序记录序列可以用顺序存储结构和和链式存储结构表示。在本章的讨论中(除基数排序外),我们将待排序的记录序列用顺序存储结构表示,即用一维数组实现。其定义如下所示: #define MAX_NUM 80 //待排序记录序列中的最大数据元素个数 typedef struct elemtype { //待排序的数据元素类型 keytype key; //数据元素的关键字 anytype otheritem; //数据元素中的其他成份 }DataType[MAX_NUM+1]; 8.2 插入排序 插入排序的主要思路是不断地将待排序的数值插入到有序段中,使有序段逐渐扩大,直至所有数值都进入有序段中位置。 8.2.1 直接插入排序 1. 直接插入排序的基本思想 直接插入排序是一种比较简单的排序方法。它的基本思想是依次将记录序列中的每一个记录插入到有序段中,使有序段的长度不断地扩大。其具体的排序过程可以描述如下:首先将待排序记录序列中的第一个记录作为一个有序段,将记录序列中的第二个记录插入到上述有序段中形成由两个记录组成的有序段,再将记录序列中的第三个记录插入到这个有序段中,形成由三个记录组成的有序段,…依此类推,每一趟都是将一个记录插入到前面的有序段中,假设当前欲处理第i个记录,则应该将这个记录插入到由前i-1个记录组成的有序段中,从而形成一个由i个记录组成的按关键字值排列的有序序列,直到所有记录都插入到有序段中。一共需要经过n-1趟就可以将初始序列的n个记录重新排列成按关键字值大小排列的有序序列。 2. 直接插入排序算法 将第i个记录插入到由前面i-1个记录构成的有序段中主要有两个步骤: ⑴ 将待插入记录a[i] 保存在a[0]中,即a[0]=a[i]; ⑵ 搜索插入位置: j=i-1; //j最初指示i的前一个位置 while (a[0].key a[j].key) { a[j+1]=a[j]; //后移关键字值大于a[0].key的记录 j=j-1; //将j指向前一个记录,为下次比较做准备 } a[j+1]=a[0]; //将a[0]放置在第j+1个位置上 完整的插入排序
您可能关注的文档
- 北京吉利学院汽车工程学院计算机应用课件第4章 中文Excel2010应用.ppt
- 北京吉利学院汽车工程学院计算机应用课件第5章 中文PowerPoint2010.ppt
- 北京吉利学院汽车工程学院计算机应用课件第6章 网络基本应用.ppt
- 北京交通大学供应链管理课件第八讲 供应链物流管理――网络.ppt
- 北京交通大学供应链管理课件第二讲 供应链管理概述.ppt
- 北京交通大学供应链管理课件第九讲 供应链信息管理.ppt
- 北京交通大学供应链管理课件第六讲 供应链物流管理――运输.ppt
- 北京交通大学供应链管理课件第七讲 供应链物流管理――库存.ppt
- 北京交通大学供应链管理课件第三讲 供应链战略及供应链的构建.ppt
- 北京交通大学供应链管理课件第十讲 供应链管理方法.ppt
- 2026年全球AI教育市场自适应学习系统与教育大数据分析.docx
- 2026年全球AI教育市场数据驱动决策分析.docx
- 2026年全球AI法律合规性检查技术路线图.docx
- 2026年全球AI法律咨询市场发展机遇与挑战.docx
- 2026年全球AI法律咨询市场合同审查自动化技术政府支持政策.docx
- 智慧农业无人机作物生长监测与病虫害防治信息化平台可行性分析报告.docx
- 2025年生态旅游景区停车场新能源汽车停车需求预测报告.docx
- 2026年全球AI法律咨询市场竞争格局分析.docx
- 2026年全球AI教育市场教师技术应用案例.docx
- 2026年全球AI教育市场教师角色转型与教育创新激励机制研究.docx
最近下载
- 深度解析(2026)《GBT 15555.8-1995固体废物 总铬的测定 硫酸亚铁铵滴定法》.pptx VIP
- 新大象版科学六年级下册全册精编知识点.pdf
- 钢轨探伤正常波形及图像识读王孟君课件.pptx VIP
- 2025年食品检验工食品理化检测考试试卷:理化指标分析.docx VIP
- 超声波常见异常波形识读王孟君课件.pptx VIP
- 跨境数据流动与个人信息保护.docx VIP
- 考试2018常规理化岗位考核.pdf VIP
- 轨头核伤波形及图像识读王孟君课件.pptx VIP
- 单元工程施工质量检验表与验收表(样表:4小型蓄水工程)(SLT 336—2025)水土保持工程质量验收与评价规范.docx VIP
- 单元工程施工质量检验表与验收表(样表:3梯田工程)(SLT 336—2025)水土保持工程质量验收与评价规范.docx VIP
原创力文档

文档评论(0)