数据结构课件-排序.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构课件-排序.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 排序
- 资源描述:
-
1、第第1010章章 排序排序一、基本概念一、基本概念l排序排序:将文件中的记录按照关键字值关键字值递增或递减的顺序排列起来。l排序的稳定与不稳定排序的稳定与不稳定:若关键字相同的记录在排序后先后顺序仍然不变,则称所用的排序方法是稳定的,否则就是不稳定的。l内部排序内部排序:全部在内存中进行的排序l外部排序外部排序:排序中需使用内存与外存内部排序:内部排序:插入排序,交换排序,选择排序,归并排序,基数排序等。内部排序与存储结构:(1)一维数组作为存储结构:对记录进行物理重排;(2)以链表作为存储结构:无须移动记录,仅需修改指针即可;(3)建立索引表辅助排序排序算法的评价标准:排序算法的评价标准:(
2、1)时间;(2)执行算法所需的附加空间;(3)算法复杂度。主要是时间代价:主要是时间代价:算法的比较次数和移动次数。注:简单的排序方法,时间复杂度O(n2);先进的排序方法,时间复杂度O(nlogn);基数排序,时间复杂度O(dn)。以数组作为文件的存储结构#define MAXSIZE 100 typedef struct KeyType key;InfoType otherinfo;RecType;typedef struct RecType rMAXSIZE+1;/r0闲置或作为哨兵单元 int length;SqList;如:以某课程考试成绩为关键字的排序二、二、插入排序插入排序(In
3、sertion Sort)(Insertion Sort)定义:定义:将待排序记录分为有序区和无序区,每次将无序区中的第一个记录按其关键字值的大小插入到有序区中的适当位置,直到无序区记录全部插入为止。1 1 直接插入排序直接插入排序方法方法:在插入第i个记录时,R1,R2,,Ri-1已排好序,将关键字ki依次与关键字ki-1,ki-2,k1进行比较,从而找到应该插入的位置,然后将记录Ri插入。对R1Rn进行排序,R0为监视哨 47 33 61 82 72 11 25 47 47 33 61 82 72 11 25 47 33 33 47 61 82 72 11 25 47 /334733 33
4、 47 61 82 72 11 25 4733 33 47 61 82 72 11 25 4772 33 47 61 72 82 11 25 4711 33 47 61 72 8282 25 47 /1182 11 33 47 61 7272 82 25 47 /117211 33 47 6161 72 82 25 47 /1161 11 33 4747 61 72 82 25 47 /114711 3333 47 61 72 82 25 47 /113311 11 33 47 61 72 82 25 47 /结束11的插入排序25 11 25 33 47 61 72 82 47 /47 11
5、 25 33 47 47 61 72 82 中间过程中间过程算法:void InsertSort(SqList&L)for(i=2;i=L.length;i+)if(L.ri.keyL.ri-1.key)/需将L.ri插入有序子表 L.r0=L.ri;L.ri=L.ri-1;for(j=i-2;L.r0.keyL.rj.key;j-)L.rj+1=L.rj;/记录后移 L.rj+1=L.r0;/插入到正确位置 时间复杂度O(n2),稳定2 2、希尔排序希尔排序(ShellShells methods method)“缩小增量排序”(Diminishing Increment Sort)基本思想
6、基本思想:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。步骤步骤:1.对整个待排记录序列,按间隔d1分组,组内排序2.取d2 0 m0)、)、R Ri+di+d*m m(i+d(i+d*m=n)m=n)同组同组void ShellInsert(SqList&L,int dk)for(i=dk+1;i=L.length;i+)if(L.ri.key0&L.r0.keyL.rj.key;j-=dk)L.rj+dk=L.rj;/记录后移 L.rj+dk=L.r0;/插入到正确位置 void ShellSort(SqLi
7、st&L,int d,int t)/d为增量序列数组,t为增量数 for(k=0;k147 33 61 82 72 11若中间数介于47 和11之间,必然减少逆转数不稳定三、三、选择排序选择排序(Selection SortSelection Sort)基本思想基本思想:每一趟在待排序的记录中选出关键字最小的记录,依次放在已排序的记录序列的最后,直至全部记录排完为止。1.1.简单选择排序简单选择排序 第一趟排序:在无序区R1Rn中选出关键字最小的记录,将它与R1交换;第二趟排序:在无序区R2Rn中选出关键字最小的记录,将它与R2交换;第i趟排序:R1Ri-1已是有序区,在当前无序区RiRn中选
展开阅读全文