自考数据结构02142-第七章ppt课件.ppt
《自考数据结构02142-第七章ppt课件.ppt》由会员分享,可在线阅读,更多相关《自考数据结构02142-第七章ppt课件.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确第第七七章章 排序排序7 7.1.1 概述概述7 7.2.2 插入排序插入排序7 7.3.3 交换排序交换排序7 7.4.4 选择排序选择排序7.5 7.5 归并排序归并排序在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确数据排序数据排序将一个文件的记录按关键字不减(将一个文件的记录按关键字不减(或不增)次序排列,使文件成为有序文件,此过或不增)次序排列,使文件成为有序文件,此过 程称为排序。程称为排序。稳定排序稳定排序若排序后
2、,若排序后,相同相同关键字的记录保持关键字的记录保持 它们原来的相对次序,则此排序方法称为。它们原来的相对次序,则此排序方法称为。不稳定排序不稳定排序排序类型排序类型内部排序:内部排序:全部数据存于内存;全部数据存于内存;外部排序外部排序:需要对外村进行访问的需要对外村进行访问的排序过程排序过程7.1 7.1 概述概述在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确内部排序内部排序按方法分按方法分插入排序插入排序交换排序交换排序选择排序选择排序归并排序归并排序在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度
3、,由浅入深,所提出的问题也很明确排序文件的物理表示:排序文件的物理表示:数组表示数组表示排序指标(排序算法分析):排序指标(排序算法分析):存储空间存储空间-空间复杂度空间复杂度 比较次数比较次数-时间复杂度时间复杂度#define n 100#define n 100/*/*序列中待排序记录的总数序列中待排序记录的总数*/*/typedef structtypedef struct int key;int key;/*/*关键字项关键字项*/*/anytype otheritem;anytype otheritem;/*/*其他数据项其他数据项*/*/records;records;type
4、def records listn+1;typedef records listn+1;list r;list r;r0 r1 r2.rnr0 r1 r2.rnri.keyri.key第第i i个记录的关键字个记录的关键字在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确1.1.过程:过程:对对R R1 1,R Ri-1i-1已排好序,有已排好序,有K K1 1KK2 2.K.Ki-1i-1,现将现将K Ki i依次与依次与K Ki-1i-1,K Ki-2i-2,进行比较,并移动元进行比较,并移动元素,素,直到发现直到发现R Ri i应
5、插在应插在R Rj j与与R Rj+1j+1之间之间(即有即有K Kj jKKi iK Kj+1j+1 ),则将则将R Ri i插到插到j+1j+1号位置上,形成号位置上,形成i i个有序序列。个有序序列。(i i从从2 2n n)2.2.算法:算法:见见P1853.3.例例:见见P1864.4.算法分析:算法分析:空间复杂度空间复杂度O(1):O(1):需要一个辅助空间需要一个辅助空间 时间复杂度时间复杂度 O(nO(n2 2)稳定性:稳定性:稳定排序稳定排序;直接插入排序直接插入排序7.2 7.2 插入排序(通过比较插入实现排序)插入排序(通过比较插入实现排序)在整堂课的教学中,刘教师总是
6、让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确直接插入排序算法:直接插入排序算法:void void S StraighttraightInsertInsertsort(list rsort(list r,int n,int n););/*/*用直接插入排序法对用直接插入排序法对r1rnr1rn进行排序进行排序*/*/int i,j;int i,j;for(ifor(i=2;i=n;i+)2;i=n;i+)r0=ri;r0=ri;j=i-1;j=i-1;while(r0.keyrj.key)while(r0.keyrj.key)rj+1=rj;rj+1=rj;
7、/*/*记录后移记录后移*/*/j=j-1;j=j-1;rj+1=r0;rj+1=r0;/*/*插入插入*/*/在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确7.3 7.3 交换排序(通过比较交换实现排序)交换排序(通过比较交换实现排序)一、冒泡排序一、冒泡排序1.1.基本思想:基本思想:通过多次重复比较、交换相邻记录而实通过多次重复比较、交换相邻记录而实 现排序;每一趟的效果都是将当前键值最大的记录现排序;每一趟的效果都是将当前键值最大的记录 换到最后换到最后。(见(见P P187187)2.2.例:例:试对下列待排序序列用冒泡排
8、序法进行排序试对下列待排序序列用冒泡排序法进行排序,给出每趟结给出每趟结果果:49,38,65,97,76,134,27,49第一趟:第一趟:38496576972749134第二趟:第二趟:38496576274997134第三趟:第三趟:38496527497697134第四趟:第四趟:38492749657697134第五趟:第五趟:38274949657697134第六趟:第六趟:27384949657697134第七趟:第七趟:27384949657697134在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确3.3.冒泡排序
9、冒泡排序算法:算法:见下页。见下页。4.4.算法分析:算法分析:时间复杂度:外循环最多时间复杂度:外循环最多n-1n-1次(最少次(最少1 1次),次),第第i i次外循环时,内循环次外循环时,内循环n-in-i次比较,次比较,最大比较次数为最大比较次数为n ni=1i=1n-i=n(n-1)/2nn-i=n(n-1)/2n2 2/2 /2 =O(nO(n2 2)稳定性:稳定性:稳定排序稳定排序。在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确冒泡排序算法:冒泡排序算法:Void bubbleSort(list r,int n)Voi
10、d bubbleSort(list r,int n)int i,j,temp,endsort;int i,j,temp,endsort;for(i=1;i=for(i=1;i=n-1n-1;i+);i+)endsort=0endsort=0;for(j=1;j=n-i for(j=1;j rj rj+1+1.key).key)temp=rj;temp=rj;rj=rj+1;rj=rj+1;rj+1=rj+1=temptemp;endsort=1endsort=1;if(if(endsort=0endsort=0)breakbreak;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设
11、置具有一定的梯度,由浅入深,所提出的问题也很明确 首先取第一个记录,将之与表中其余记录比较并交换,从而将首先取第一个记录,将之与表中其余记录比较并交换,从而将它放到记录的正确的最终位置,使记录表分成两部分它放到记录的正确的最终位置,使记录表分成两部分 其一(左边的)其一(左边的)诸记录的关键字均小于它;其二(右边的)诸记录的关键字均大于它诸记录的关键字均小于它;其二(右边的)诸记录的关键字均大于它;然后对这两部分重新执行上述过程,依此类推,直至排序完毕。;然后对这两部分重新执行上述过程,依此类推,直至排序完毕。二、快速排序二、快速排序1.1.基本思想:基本思想:通过分部排序完成整个表的排通过分
12、部排序完成整个表的排序;序;2.2.过程:过程:记录序列记录序列 r rlowlow,rlow+1,r,rlow+1,rhighhigh 设:左指针设:左指针i i,右指针,右指针j;j;初值:初值:i=i=lowlow;j=j=highhigh;处理元素处理元素=x;=x;初始时:初始时:r1=xr1=x在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确(2)(2)i i指针逐步右移,即:指针逐步右移,即:将将riri与与x x比较,比较,i i不断增不断增1 1,直到发现某个,直到发现某个 ri.key ri.keyx.keyx.k
13、ey时,则:时,则:ri=j ri=j位置上;位置上;j-1=j;j-1=j;转转(1);(1);此过程直到此过程直到(1)(1)或或(2)(2)中中i=ji=j时停止,此时将处时停止,此时将处理元素理元素x x送到送到i i或或j j位置上,它将原序列分成左、位置上,它将原序列分成左、右两个子序列,对它们分别进行上述过程,直右两个子序列,对它们分别进行上述过程,直至分裂后的子序列都只有一个元素为止。至分裂后的子序列都只有一个元素为止。(1)(1)j j指针逐步左移指针逐步左移,即:,即:将将rjrj与与x x比较,比较,j j不断减不断减1 1,直到发现某个,直到发现某个 rj.keyx.k
14、eyrj.keyi rj=i位置上(开始时位置上(开始时i=1i=1););i+1=i;i+1=i;转转(2)(2)在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确4.4.算法:算法:P189P189。5.5.算法分析:算法分析:平均平均时间时间性能性能:O(nlogO(nlog2 2n)n);注:若初始记录表有序或基本有序,则快速排序将注:若初始记录表有序或基本有序,则快速排序将 蜕化为冒泡排序蜕化为冒泡排序,其时间复杂度为其时间复杂度为O(nO(n2 2);即:即:快速排序在表基本有序时,最不利于其发挥效率。快速排序在表基本有序时
15、,最不利于其发挥效率。稳定性:稳定性:不稳定排序不稳定排序。第一趟:第一趟:36,55,48,37,106084,90第二趟:第二趟:103648,37,55608490第三趟:第三趟:1036374855608490结结果:果:1036374855608490 3.3.例:例:试对下列待排序序列用快速排序法进行排序试对下列待排序序列用快速排序法进行排序,给出每趟结给出每趟结果果:60,55,48,37,10,90,84,36 在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确7.47.4 选择排序选择排序(以重复选择的思想为基础进行排
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 数据结构 02142 第七 ppt 课件
限制150内