内部排序4选择排序5归并排序6基数排序.ppt
《内部排序4选择排序5归并排序6基数排序.ppt》由会员分享,可在线阅读,更多相关《内部排序4选择排序5归并排序6基数排序.ppt(36页珍藏版)》请在三一办公上搜索。
1、数据结构,10.1 概述,第十章 内部排序,10.2 插入排序,10.3 快速排序,10.4 选择排序,10.5 归并排序,10.6 基数排序,10.7 各种内部排序方法的比较,基本思想:,每一趟在n-i+1(i=1,2,n)个记录中选取关键字最小的记录作为有序序列中的第i个记录。,10.4 选择排序,简单选择排序树形选择排序堆排序,思路:,一.简单选择排序,10.4 选择排序,每次经 n-i 次比较,从 n-i+1个记录中选出第 i 小的记录,并与第 i 位置记录交换。,初始关键字,49 38 65 97 76 13 27 49,例,每次经 n-i 次比较,从 n-i+1个记录中选出第 i
2、小的记录,并与第 i 位置记录交换。,思路:,10.4 选择排序,解决方法:设置一个整型变量index,用于记录在一趟比较的过程中关键码最小的记录位置。,21,28,25,16,49,08,index,index,08,关键问题:如何在无序区中选出关键码最小的记录?,10.4 选择排序,关键问题:如何在无序区中选出关键码最小的记录?,21,28,25,16,49,08,index,08,算法描述:index=i;for(j=i+1;j=L.length;j+)if(L.rj.keyL.rindex.key)index=j;,解决方法:第i趟简单选择排序的待排序区间是ri rn,则ri是无序区第
3、一个记录,所以,将index所记载的关键码最小的记录与ri交换。,算法描述:if(index!=i)L.riL.rindex;,10.4 选择排序,关键问题:如何确定最小记录的最终位置?,void SelectSort(SqList/与第 i 记录交换,算法:,特点:1)时间复杂度为O(n2)2)算法稳定,改进的着眼点:如何减少关键码间的比较次数。若能利用每趟比较后的结果,也就是在找出键值最小记录的同时,也找出键值较小的记录,则可减少后面的选择中所用的比较次数,从而提高整个排序过程的效率。,减少关键码间的比较次数,查找最小值的同时,找出较小值,10.4 选择排序,锦标赛过程示意图,冠军,1,2
4、,3,4,5,6,7,ZHAO,CHA,LIU,BAO,DIAO,YANG,XUE,WANG,CHA,LIU,DIAO,WANG,CHA,DIAO,CHA,锦标赛过程示意图,亚军,8,9,ZHAO,CHA,LIU,BAO,DIAO,YANG,XUE,WANG,ZHAO,LIU,DIAO,WANG,LIU,DIAO,DIAO,锦标赛过程示意图,季军,10,11,思路:,二.树型选择排序,10.4 选择排序,以初始序列作为完全二叉树的叶子结点,从最后的分支结点开始,选左右孩子中较小的(胜者)为其双亲的值,相等则取左孩子,直至选出树根,得到最小元素;然后将此时根对应的叶子结点关键字值改为 最大值,从
5、该叶子起与兄弟比,较小的作为新的双亲,直至根,得到次小值,依次可选出其余元素。,例:49 38 65 97 76 13 27 49,二.树型选择排序,10.4 选择排序,以初始序列作为完全二叉树的叶子结点,从最后的分支结点开始,选左右孩子中较小的(胜者)为其双亲的值,相等则取左孩子,直至选出树根,得到最小元素;,二.树型选择排序,10.4 选择排序,例:49 38 65 97 76 13 27 49,然后将此时根对应的叶子结点关键字值改为 最大值,从该叶子起与兄弟比,较小的作为新的双亲,直至根,得到次小值,依次可选出其余元素。,缺点:需增加额外空间来存放中间比较结果和排序结果,且算法实现困难。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内部 排序 选择 归并 基数排序
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5240136.html