- 17
- 0
- 约9.3千字
- 约 57页
- 2016-01-08 发布于湖北
- 举报
数据结构(C++描述)_排序.ppt
从图9-6(a)可知,8个队经过4场比赛,获胜的4个队进入半决赛,再经过2场半决赛和1场决赛即可知道冠军属谁(共7场比赛)按照锦标赛的传递关糸,亚军只能产生于分别在决赛,半决赛和第一轮比赛中输给冠军的选取手中,于是亚军只能在b、c、e这3个队中产生(见图9-6(b)),即进行2场比赛(e 与c一场,e与c的胜队与b一场)后,即可知道亚军属谁。同理,第三名只需在c、f、g这3个队产生(见图9-6(c))即进2场比赛(f与g一场,f与g的胜队与c一场)即可知道第三名属谁。 树形选择排序(tree selection sorting),又称锦标赛排序(tournament sorting),是一种按照锦标赛的思想进行选择排序的方法。首先对n个记录的排序码进行两两比较,然后在其中?n/2? 个较小者之间再进行两两比较,如此重复,直到选出最小排序码为止。 例如,给定排序码头 50,37,66,98,75,12,26,49,树形选择排序过程见图9-7。 9.4.3 堆排序 1.堆的定义 若有n个元素的排序码k1,k2,k3,…,kn,当满足如下条件: ki≤k2i ki≥k2i (1) ki≤k2i+1 或 (2) ki≥k2i+1 其中i=1,2,…,?n/2? ?则称此n个元素的排序码k1,k2,k3,…,kn为一个堆。 若将此排序码按顺序组成一棵完全二叉树,则(1)称为小根堆(二叉树的所有根结点值小于或等于左右孩子的值),(2)称为大根堆(二叉树的所有根结点值大于或等于左右孩子的值)。 若n个元素的排序码k1,k2,k3,…,kn满足堆,且让结点按1、2、3、…、n顺序编号,根据完全二叉树的性质(若i为根结点,则左孩子为2i,右孩子为2i+1)可知,堆排序实际与一棵完全二叉树有关。若将排序码初始序列组成一棵完全二叉树,则堆排序可以包含建立初始堆(使排序码变成能符合堆的定义的完全二叉树)和利用堆进行排序两个阶段。 2.堆排序的基本思想 将排序码k1,k2,k3,…,kn表示成一棵完全二叉树,然后从第?n/2? 个排序码开始筛选,使由该结点作根结点组成的子二叉树符合堆的定义,然后从第?n/2? -1个排序码重复刚才操作,直到第一个排序码止。这时候,该二叉树符合堆的定义,初始堆已经建立。 接着,可以按如下方法进行堆排序:将堆中第一个结点(二叉树根结点)和最后一个结点的数据进行交换(k1与kn),再将k1~kn-1重新建堆,然后k1和kn-1交换,再将k1~kn-2重新建堆,然后k1和kn-2交换,如此重复下去,每次重新建堆的元素个数不断减1,直到重新建堆的元素个数仅剩一个为止。这时堆排序已经完成,则排序码k1,k2,k3,…,kn已排成一个有序序列。 若排序是从小到大排列,则可以用建立大根堆实现堆排序,若排序是从大到小排列,则可以用建立小根堆实现堆排序。 例如,给定排序码46,55,13,42,94,05,17,70,建立初始堆的过程如图9-8所示。 对排序码46,55,13,42,94,05,17,70,建成如图9-8(e)所示的大根堆后,堆排序过程如图9-9所示。 * 第9章 排序 数据结构(C++描述) 目录 9.1 基本概念 9.2 插入排序 9.3 交换排序 9.4 选择排序 9.5 归并排序 *9. 6 分配排序 退出 9.1 基本概念 9.1.1 排序介绍 排序(Sorting)是数据处理中一种很重要的运算,同时也是很常用的运算,一般数据处理工作25%的时间都在进行排序。简单地说,排序就是把一组记录(元素)按照某个域的值的递增(即由小到大)或递减(即由大到小)的次序重新排列的过程。 表9-1 学生档案表 学号 姓名 年龄 性别 99001 王晓佳 18 男 99002 林一鹏 19 男 99003 谢宁 17 女 99004 张丽娟 18 女 99005 周涛 20 男 99006 李小燕 16 女 例如,在表9-1中,若以每个记录的学号为关键字,按排序码年龄的递增(由小到大)排序,则所有记录的排序结果可简记为: {(99006,16),(99003,17),(99001,18),(99004,18),(99002,19),(99005,20)}; 也可能为: {(99006,16),(99003,17),(99004,18),(99001,18),(99002,19),(99005,20)}; 这两个结果都
您可能关注的文档
最近下载
- 天津市部分区2024-2025学年八年级上学期11月期中数学试题(解析版).docx VIP
- 会议活动策划方案模板.docx VIP
- 土方意向协议书范本.docx VIP
- 履带吊安拆监理细则.docx VIP
- T_ZZB 2614-2022 BD100生物柴油标准.docx VIP
- 2026领导班子成员民主生活会“五个带头”个人对照检查材料8篇.docx VIP
- 2025年度民主生活会个人对照检查发言材料.docx VIP
- 山东省烟台龙口市(五四制)2022-2023学年六年级上学期期末考试数学试题(含答案).docx VIP
- 部编版七年级语文上册第三单元第9课时_主题阅读:有为有不为.docx VIP
- 《人工智能辅助的翻译技术》课件.ppt VIP
原创力文档

文档评论(0)