- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件8内排序精要
快速排序 基本思想: 任取一个元素 (如第一个) 为中心 所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表; 对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个 21 25 49 25* 16 08 0 1 2 3 4 5 21 25* 16 25 16 08 49 pivotkey 08 21 08 16 25* 21 pivotkey pivotkey 快速排序 25* 25 49 25 49 pivotkey 49 08 16 25* 25 21 ①每一趟的子表的形成是采用从两头向中间交替式逼近法; ②由于每趟中对各子表的操作都相似,可采用递归算法。 快速排序 算法分析 时间效率:O(nlog2n) —每趟确定的元素呈指数增加 空间效率:O(log2n)—递归要用到栈空间 稳 定 性: 不稳定 —可选任一元素为支点。 8.4 选择排序 基本思想: 每一趟在后面 n-i +1个中选出关键码最小的对象, 作为有序序列的第 i 个记录 21 25* i =1 25 16 49 08 最小者 08 交换21,08 25 16 08 25* 49 21 i = 2 最小者 16 交换25,16 49 i = 3 08 16 25* 25 21 最小者 21 交换49,21 简单选择排序 49 25* 0 1 2 3 4 5 i =4 08 16 25 21 最小者 25* 无交换 25* i =5 49 最小者 25 无交换 25 21 16 08 25 16 08 25* 49 21 结果 各趟排序后的结果 简单选择排序 算法分析 时间复杂度:O(n2) 空间复杂度:O(1) 不稳定 比较次数: 移动次数 最好情况:0 最坏情况:3(n-1) n个元素的序列{k1,k2,…,kn},当且仅当满足下列关系时,成为堆: 堆排序 什么是堆? 如果将序列看成一个完全二叉树,非终端结点的值均小于或大于左右子结点的值。 (87,78,53,45,65,09,31,17,23) 堆顶元素(根)为最小值或最大值 (09,17,65,23,45,78,87,53,31) 利用树的结构特征来描述堆,所以树只是作为堆的描述工具,堆实际是存放在线形空间中的。 小根堆 8 16 9 1 6 2 11 10 5 4 大根堆 1 6 8 12 9 16 2 11 5 14 16 9 8 10 6 2 11 1 5 4 1 9 8 10 6 16 2 11 5 4 × 判定(80,75,40,62,73,35,28,50,38,25,47,15)是否为堆 80 75 40 62 73 28 35 50 38 25 47 15 完全二叉树 大根堆 堆排序 基本思想: 如何建?? 如何调整?? (1)将序列r[1..n] 建初堆,交换r[1]和r[n],则r[n]为关键字最大的记录。 (2)将r[1..n-1]重新调整为堆,交换r[1]和r[n-1] ,则r[n-1]为关键字次大的记录。 (3)循环n-1次,直到交换了r[1]和r[2]为止,得到了一个非递减的有序序列r[1..n]。 30 1 60 2 40 4 70 5 8 3 12 6 10 7 [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] 30 60 8 40 70 12 10 如何将无序序列建成堆 思考:有n 个结点的完全二叉树,最后一个分支结点的标号是多少? ?n/2? 70 1 60 2 40 4 30 5 12 3 8 6 10 7 [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] 70 60 12 40 30 8 10 从第?n/2?个元素起,至第一个元素止,进行反复筛选 堆 将根结点r[1]与左、右子树根结点比较,并与小者交换 重复直至叶子结点,得到新的堆 交换r[1]和r[n]后,如何将r[1..n-1]重新调整,使之成为新堆? 筛选 堆的重新调整 算法分析 时间效率:O(nlog2n) 空间效率:O(1) 稳 定 性:不稳定 适用于n 较大的情
文档评论(0)