清华大学朱明方数据结构(精品).ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
清华大学朱明方数据结构(精品)

7.3 选择排序 简单选择排序 2.算法描述 SELECTSORT(L,n) 输入:无序表L(1:n) 输出:有序表L(1:n) FOR i=1 TO n-1 DO [共需选择n-1次] {k i FOR j=i+1 TO n DO [从当前无序子表中选出最小项L(k)] {IF L(j)L(k) THEN k j IF k≠i THEN L(i) ? L(k) [L(k)交换到无序子表的最前面I位置上] } RETURN * 7.3 选择排序 简单选择排序 3. 算法分析 时间复杂度:选择第i个元素,需要n-i次比较; 总比较次数为; 次 O(n2) ; 每选择一个元素最多有3次元素移动; 最多总移动次数为3(n-1) O(n); 时间复杂度为: O(n2) 空间复杂度:in place 动态性能:不稳定 简单选择排序的主要操作——“比较” : 改进——减少比较次数 n(n-1) 2 * 7.3 选择排序 二. 堆排序 堆排序(Heap Sort)——利用堆的特性进行排序,属选择类排序。 1. 树形选择排序思想 树形选择排序——按照锦标赛思想进行排序的方法。 简单选择排序中: ?在n个关键字中选出最小值,需n-1次比较; ?对其余n-1个关键字选次小值,需n-2次比较 … 减少选择次小值的比较次数的思路 ——利用选择最小值过程中的比较结果 例如,有8个足球队参加足球锦标赛,需要决出前两名。 若用简单选择法去做,需赛7+6=13场。 采用锦标赛的传递(甲胜乙,乙胜丙,则甲必胜丙)规则, 只需7+2=9场。 * 7.3 选择排序 二. 堆排序 1. 树形选择排序思想 下图表示淘汰赛过程: 经过7场比赛选出第一名 E A E A A B C D D E E F G H G 第一名 * 7.3 选择排序 二. 堆排序 1. 树形选择排序思想 利用选拔第一名过程中的比较结果,选出第二名。 根据锦标赛的传递关系,第二名只可能在争夺第一名的 比赛过程中直接输给第一名的球队中产生, 即: 在产生第一名的基础上再赛两场即可: A A G A A B C D D F F G H G 第二名 * 7.3 选择排序 二. 堆排序 1. 树形选择排序思想 按照锦标赛思想可实现树形选择排序 设有n个关键字(n=2k),将其作为一棵完全二叉树的n个叶子结点。 其排序过程为: ① 对n个叶子,做相邻结点值的两两比较,把n/2个较小者作为 二叉树上一层的分支结点值,再对新得到的这一层结点值两两 比较,选出较小者构成二叉树再上一层的结点;依次类推,经 过k层比较选出一个根结点值,即为“最小者”ki,输出 ki , 并保留各层的比较的过程; ② 修改最小关键字ki 所在叶子结点的标志,将其相邻的兄弟结点 上移至他们的父亲结点中。并将其与兄弟结点值kp比较,选较 小者再上移至父亲结点,再将其与兄弟比较,选较小者有上移; 依此类推,则根结点为次小关键字; ③重复做,从小到大逐次选出各关键字,直到全表排序完成。 * 7.3 选择排序 二.堆排序 1. 树形选择排序思想 例如,对无序表(65 38 49 97 76 13 27 44) 进行树形排序时,选出最小值的状态为: 13 最小值 38 13 13 76 13 27 44 27 38 65 38 49 97 49 * 7.3

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档