数据结构排序讲解.ppt
《数据结构排序讲解.ppt》由会员分享,可在线阅读,更多相关《数据结构排序讲解.ppt(26页珍藏版)》请在三一办公上搜索。
1、数据结构,第八章,第八章 排序,8.1 基本概念8.2 插入排序8.3 交换排序8.4 选择排序8.5 归并排序,8.1 基本概念,排序:将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。,有序表与无序表:一组记录按关键字的递增或递减次序排列得到的结果被称之为有序表,相应地,把排序前的状态称为无序表。,正序表与逆序表:若有序表是按关键字升序排列的,则称为升序表或正序表,否则称为降序表或逆序表。不失普遍性,一般只讨论正序表。,排序的方法:,插入排序:直接插入排序、折半插入排序、希尔排序交换排序:冒泡排序、快速排序选择排序:简单选择排序、堆排序归并排序:2-路归并排序其它排序:
2、多关键字排序,排序基本操作:比较两个关键字大小将记录从一个位置移动到另一个位置,例:,49 38 65 97 76 13 27,i=2 38(38 49)65 97 76 13 27,i=3 65(38 49 65)97 76 13 27,i=4 97(38 49 65 97)76 13 27,i=5 76(38 49 65 76 97)13 27,i=6 13(13 38 49 65 76 97)27,i=1(),i=7(13 38 49 65 76 97)27,27,97,76,65,49,38,27,8.2 插入排序,直接插入排序,排序过程:整个排序过程为n-1趟插入,即先将序列中第1个
3、记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。,折半插入排序:用折半查找方法确定插入位置。,例:,i=1(30)13 70 85 39 42 6 20,i=2 13(13 30)70 85 39 42 6 20,i=7 6(6 13 30 39 42 70 85)20,i=8 20(6 13 20 30 39 42 70 85),希尔排序,希尔排序(Shell Sort)又称为“缩小增量排序”。排序过程:先取一个正整数d1n,把所有相隔d1的记录放一组,组内进行直接插入排序;然后取d2d1,重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止。
4、,希尔排序特点,子序列的构成不是简单的“逐段分割”,而是将相隔某个增量的记录组成一个子序列。关键字较小的记录跳跃式前移,在进行最后一趟增量为1的插入排序时,序列已基本有序。,8.3 交换排序,冒泡排序,排序过程:将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r1.keyr2.key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被放在最后。,对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被放在第n-1个位置。重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止。,例,38,49,
5、76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,排序后序列为:13 27 30 38 49 65 76 97,快速排序,首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换。再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换。重复上述两步,直至i=j为止。,基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。,排序过程:,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 排序 讲解

链接地址:https://www.31ppt.com/p-5986039.html