数据结构选择排序C.ppt
《数据结构选择排序C.ppt》由会员分享,可在线阅读,更多相关《数据结构选择排序C.ppt(32页珍藏版)》请在课桌文档上搜索。
1、第10章 内部排序10.1 排序的基本概念10.2 插入排序10.3 交换排序10.4 选择排序10.5 归并排序10.6 基数排序10.7 各种内部排序方法的比较,10.4 选择排序,基本思想:第i趟在n-i+1(i=1,2,n-1)个记录中选取关键字最小的记录作为有序序列中的第i个记录。,1.简单选择排序2.树形选择排序3.堆排序,1)简单选择排序的基本思想 通过 n-i 次关键字间的比较,从无序序列i.n的 n-i+1 记录中选出关键字最小的记录加入有序序列(即作为有序序列中的第i个记录)。,1.简单选择排序,首先从1-n个元素中选出关键字最小的记录交换到第一个位置上。然后再从第2 个到
2、第n个元素中选出次小的记录交换到第二个位置上,依次类推。,初态,8 3 9 1 6,8 3 9 1 6,8 3 9 1 6,8 3 9 1 6,1 3 9 8 6,1 3 9 8 6,1 3 9 8 6,示例:,2)简单选择排序算法描述void SelectSort(Elem R,int n)/对记录序列R1.n作简单选择排序 for(i=1;in;+i)/选择第i小记录换到位置i k=SelectMinKey(R,i);if(i!=k)RiRk;/SelectSort,3)简单选择排序算法分析 由于存在着不相邻元素之间的互换,因此,简单选择排序是“不稳定的”。算法实现共需要进行 n-1 次选
3、择,每次选择需要进行n-i次比较(1in-1),而每次交换最多需3次移动,因此,总的比较次数 C=n(n-1)/2,总的移动次数 M=3(n-1)。故其时间复杂度为O(n2)。选择排序的主要操作是进行关键字间的比较,因此改进选择排序应从如何减少“比较”考虑。,显然,在n个关键字中选出最小值,至少进行n-1次比较,然而,继续在剩余的n-1个关键字中选择次小值,是否一定要进行n-2次比较呢?如果能利用前n-1次比较所得信息,就可减少以后各趟选择排序中所用的比较次数。实际上,体育比赛中的锦标赛便是一种选择排序,例 锦标赛在8个运动员中决出前3名至多需要11场比赛,前提:A-B,B-C=A-C,例 锦
4、标赛在8个运动员中决出前3名至多需要11场比赛,例 锦标赛在8个运动员中决出前3名至多需要11场比赛,2.树型选择排序1)基本思想 又称锦标赛排序,其过程:首先对n个记录的关键字两两比较,然后在 n/2 个较小者之间再进行两两比较,如此重复,直至选出最小关键字的记录为止。此对应的过程可以用一棵有n个叶子结点的完全二叉树表示。,例 从49,38,65,97,76,13,27,498个关键字中选出最小关键字的过程。,输出13,例 从49,38,65,97,76,13,27,508个关键字中选出最小关键字的过程,输出13,27,例 从49,38,65,97,76,13,27,508个关键字中选出最小
5、关键字的过程,输出13,27,38,除了最小关键字之外,每次选择比较的次数为:完全二叉树的深度-1 次,2)树型选择排序算法分析 含n个叶子结点的完全二叉树的深度为 2n+1,因此在树型选择排序中,除了最小关键字之外,每选择一个次小关键字仅需进行 2n 次比较,因此,其时间复杂度为 O(n2n)。由于此种排序方法需要的存储空间较多和最大值多余的比较多等缺点,堆排序应运而生。,3.堆排序1)堆的定义 n个元素的序列k1,k2,k3,kn当且仅当满足关系:ki k2i,ki k2i+1 或 ki k2i,ki k2i+1(i=1,2,3,n/2)则称之为堆。,小根堆,大根堆,例如:判定序列96,8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 选择 排序

链接地址:https://www.desk33.com/p-229790.html