数据结构第10章讲述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排序过程 首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。 再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。 重复上述操作,共进行n-1趟排序后,排序结束。 8.3 选择排序----简单选择排序 例 初始: [ 49 38 65 97 76 13 27 ] j j k k i=1 一趟: 13 [38 65 97 76 49 27 ] i=2 k k j j 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] 排序结束: 13 27 38 49 65 76 97 8.3 选择排序----简单选择排序 void SelectSort (SqList L) { // 对顺序表L作简单选择排序 for (i=1; iL.length; ++i) { // 选择第 i 小的记录,并交换到位   j = i;   for ( k=i+1; k=L.length; k++ )    // 在L.r[i..L.length]中选择关键字最小的记录    if ( L.r[k].key L.r[j].key ) j =k ;   if ( i!=j ) L.r[j] ←→L.r[i];  // 与第 i 个记录互换  }// for } // SelectSort 8.3 选择排序----简单选择排序 堆的定义:n个元素的序列(k1,k2,……kn),当且仅当满足下列关系时,称之为堆。 (i=1,2,…...?n/2?) 或 ki?k2i ki?k2i+1 ki?k2i ki?k2i+1 8.3 选择排序----堆排序 例 (96,83,27,38,11,9) 例 (13,38,27,50,76,65,49,97) 96 27 9 11 38 83 13 27 38 49 65 76 50 97 可将堆序列看成完全二叉树,则堆顶 元素(完全二叉树的根)必为序列中 n个元素的最小值或最大值 8.3 选择排序----堆排序 堆排序:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输出堆顶的最小(大)值后,使剩余的n-1个元素重又建成一个堆,则可得到n个元素的次小值;重复执行,得到一个有序序列,这个过程叫堆排序 堆排序需解决的两个问题: 如何由一个无序序列建成一个堆? 如何在输出堆顶元素之后,调整剩余元素,使之成为一个新的堆? 第二个问题解决方法——筛选 方法:输出堆顶元素之后,以堆中最后一个元素替代之;然后将根结点值与左、右子树的根结点值进行比较,并与其中小者进行交换;重复上述操作,直至叶子结点,将得到新的堆,称这个从堆顶至叶子的调整过程为“筛选” 8.3 选择排序----堆排序 98 81 49 73 55 64 12 36 27 40 例如: 是大顶堆 12 但在 98 和 12 进行互换之后,它就不是堆了! 因此,需要对它进行“筛选”。 98 12 81 73 64 12 98 比较 比较 8.3 选择排序----堆排序 例 13 27 38 49 65 76 50 97 97 27 38 49 65 76 50 13 输出:13 27 49 38 97 65 76 50 13 输出:13 97 49 38 27 65 76 50 13 输出:13 27 38 49 50 27 65 76 97 13 输出:13 27 65 49 50 27 38 76 97 13 输出:13 27 38 8.3 选择排序----堆排序 49 65 50 27 38 76 97 13 输出:13 27 38 76 65 50 27 38 49 97 13 输出:13 27 38 49 50 65 76 27 38 49 97 13 输出:13 27 38 49 97 65 76 27 38 49 50 13 输出:13 27 38 49 50

文档评论(0)

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

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

1亿VIP精品文档

相关文档