- 12
- 0
- 约1.4万字
- 约 66页
- 2016-01-08 发布于湖北
- 举报
数据结构第9章内部排序.ppt
数据结构(C语言版) 第9章 内部排序 本章主要知识点 插入排序 交换排序 选择排序 归并排序 基数排序 排序的基本概念 排序是将一批(组)任意次序的数据元素(或记录)重新排列成按关键字有序的序列的过程; 定义:给定一组记录序列: , 其相应的关键字序列是 。确定 1,2,…,n的一个排列 ,使 其相应的关键字满足如下非递减(或非递 增)关系: 的序列 。 主关键字唯一标识记录 次关键字不能唯一标识记录 若记录序列中有两个或两个以上关键字相等的记录:Ki=Kj(ij) ,且在排序前Ri先于Rj,排序后的记录序列仍然是Ri先于Rj,称该排序方法是稳定的,否则是不稳定的。 待排序记录数较少:所有记录都存放在内存中进行排序,称为内部排序; 待排序的记录数太多:所有记录不可能同时存放在内存中,排序过程中必须在内、外存之间进行数据交换,称为外部排序。 对内部排序地而言,两种基本操作:比较和移动。比较是指比较两个关键字的大小;移动是指存储位置的移动,根据关键字的大小,记录从一个位置移到另一个位置。 待排序记录类型定义: #define MAX_SIZE 100 typedef int KeyType ; typedef struct RecType { KeyType key ; /* 关键字 */ infoType otherinfo ; /* 其他域 */ }RecType ; typedef struct { RecType R[MAX_SIZE] ; int length ; }Sqlist ; 评价排序算法的重要标准: (1)排序的执行时间:排序是数据处理中经常执行的一种操作,往往属于系统的核心部分,因此排序算法的时间开销是衡量其好坏的最重的标志; (2)排序所需要的辅助空间:辅助存储空间是指在待排序的记录个数一定的条件下,除了存放待排序记录占用的存储空间之外,执行算法所需要的其他存储空间。若排序算法所需的辅助空间不依赖问题的规模,即空间复杂度是O(1),则称排序方法是就地排序,否则是非就地排序。 插入排序 插入排序是一类借助“插入”操作进行排序的方法,其主要思想是:每次将一个待排序的记录按其关键字的大小插入到一个已经排好序的有序序列中,直到全部记录排好序。 1 直接插入排序 (Straight Insertion Sort) 基本思想:将待排序记录Ri插入到已排好序的记录表(R1,R2,…,Ri-1)中,得到一个新的、记录数增加1的有序表。 算法步骤: (1)将整个待排序的记录序列划分成有序区和无序区,初始时有序区为待排序记录序列的第一个记录,无序区包括所有剩余待排序的记录; (2)将无序区的第一个记录插入到有序区的合适位置中,从而使无序区减少一个记录,有序区增加一个记录; (3)重复执行(2),直到无序区中没有记录为止。 void InsertSort(SqList *L) { int i, j ; for (i=2; i=L-length; i++) { L-R[0]=L-R[i]; j=i-1; /*设置哨兵*/ while( LT(L-R[0].key, L-R[j].key) ) { L-R[j+1]=L-R[j]; j--; } /*查找插入位置*/ L-R[j+1]=L-R[0]; /*插入到相应位置*/ } } R[0] 的作用: (1) 不需要增加辅助空间:当前待插入的记录R[i]会因为记录的后移而被占用,这时可以将它放到R[0]中保存; (2) 保证查找插入位置的内循环总可以在超出循环边界之前找到一个等于当前记录的记录,起“哨兵监视”作用,避免在内循环中每次都要判断j是否越界。特别适合于待插入记录的关键字值小于有序区的所有记录的关键字值的情况。 算法分析: ⑴ 最好情况:待排序记录按关键字从小到大排列,算法中的内循环无须执行,每一趟排序时,关键字比较1次,记录不需移动。所以整个排序的关键字比较次数为n-1,记录移动次数为0。 ⑵ 最坏情况:待排序记录按关键字从大到小排列,每一趟排序时,算法中的内循环体执行i-1次,关键字比较次数i次,记录移动次数i+1。 一般地,认为待排序的记录在各个位置的插入概率相同,则取以
您可能关注的文档
- 教学用投影仪的使用和维护.ppt
- 教学设计二PPT.ppt
- 教师业务档案管理系统的设计与实现(含代码).doc
- 教师心理健康调适策略(2014.8.7).ppt
- 教师暑期培训.ppt
- 教师用八年级物理下知识点.doc
- 教师研修平台认证.ppt
- 教师读书分享会.ppt
- 教师资格考试综合能力测试常见问题及解答.ppt
- 教材创新教法,推进语文整体改革.ppt
- 2025年驻马店幼儿师范高等专科学校马克思主义基本原理概论期末考试模拟题及答案解析(必刷).docx
- 2025年阿克塞县幼儿园教师招教考试备考题库含答案解析(夺冠).docx
- 2025年黔南民族师范学院马克思主义基本原理概论期末考试模拟题附答案解析.docx
- 2025年重庆安防职业学院马克思主义基本原理概论期末考试模拟题及答案解析(必刷).docx
- 2025年长沙职业技术学院马克思主义基本原理概论期末考试模拟题带答案解析(必刷).docx
- 2025年青岛飞洋职业技术学院马克思主义基本原理概论期末考试模拟题含答案解析(必刷).docx
- 2025年铁岭师范高等专科学校马克思主义基本原理概论期末考试模拟题及答案解析(夺冠).docx
- 2025年重庆邮电大学马克思主义基本原理概论期末考试模拟题含答案解析(必刷).docx
- 2025年黑龙江省(80所)马克思主义基本原理概论期末考试模拟题及答案解析(夺冠).docx
- 红色金色筑梦为马不负韶华工作总结计划PPT模板.pptx
最近下载
- 雕塑维护方案养护.docx VIP
- 四川省成都市树德实验中学2024-2025学年七年级上学期期末考试道德与法治试题.docx VIP
- 对照不同光质补光对转色期葡萄品质和成分影响的初步探究.docx VIP
- 金属切削原理与刀具 配套课件.ppt
- T∕JNBDA 0009-2025 生殖医学高质量数据集建设规范.pdf VIP
- 上海高考:地理高频考点汇总.doc VIP
- 卫生部手术分级目录(2025年1月份修订).doc VIP
- DB11T 1087-2025公共建筑装饰装修工程质量验收标准.docx VIP
- 小学快乐体育教学活动的研究与实践课题研究报告.docx VIP
- 02S515 排水检查井图集建筑工程图集.docx VIP
原创力文档

文档评论(0)