- 6
- 0
- 约1.7万字
- 约 57页
- 2018-02-24 发布于河南
- 举报
数据结构(C)(第09章
(a)经过7次比较得到最小值12 (b)输出12后,经过两次比较得到第二小值26 (c)输出12,26后,经过两次比较得到第三小值37 (d)输出12,26,37后,经过两次比较得到第四小值49 (e)输出12,26,37,49后,经过1次比较得到第五小值50 (f)输出12,26,37,49,50后,经过1次比较得到第六小值66 (g)输出12,26,37,49,50,66后,经过1次比较得到第七小值75 (h)输出12,26,37,49,50,66,75后,经过1次比较得到第八小值98 图9-7 树形选择排序过程示意 在树形选择排序中,含有n个叶子结点的完全二叉树的深度为?log2n?+1,除了最小排序码外,每选择一次小排序码时,仅需进行?log2n? 次比较,因此,该排序算法的时间复杂度为O(nlog2n)。但是,这种排序方法需要用很多临时指针来保存比较的中间信息,占用较多的辅助单元,故树形选择排序一般很少采用,而一般采用另一种形式的选择排序—堆排序。 9.4.3 堆排序 1.堆的定义 若有n个元素的排序码k1,k2,k3,…,kn,当满足如下条件: ki≤k2i ki≥k2i (1) 或 (2) ki≤k2i+1 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所示。 (a)初始无序的结点,从42开始调整 (b)将以13为根的子树调整成堆 (c)将以55为根的子树调整成堆 (d)将以46为根的子树调整成堆 (e)成堆 图9-8 建立初始大根堆的过程示意图 对排序码46,55,13,42,94,05,17,70,建成如图9-8(e)所示的大根堆后,堆排序的过程如图9-9所示。 (a)初始堆 (b)94与42交换 (c)前7个排序码重新建成堆 (d)70和13交换 (e)前6个排序码重新建成堆 f)55和05交换 (g)前5个排序码重新建成堆 (h)46和05交换 (i)前4个排序码重新建成堆 (j)42和05交换 (k)前3个排序码重新建成堆 (l)17和05交换 (m)前2个排序码重新建成堆 (n)13和05交换 图9-9 堆排序过程示意图 从图9-9(n)可知,将其结果按完全二叉树形式输出,则得到的结果为:05,13,17,42,46,55,70,94,即为堆排序的结果。 3.堆排序的算法实现 void creatheap(ElemType R[],int i,int n) /
您可能关注的文档
最近下载
- DBJT_15-111-2016_预拌砂浆_生产与应用技术管理规程-全国各省建筑标准.pdf VIP
- DBJT_15-106-2015_顶管技术规程-全国各省建筑标准.pdf VIP
- 专题四 技术图样 考向一 错标、多标、漏标 学案(含解析)2025届高中通用技术.DOCX VIP
- (一模)南通市2026届高三学业质量监测语文试卷(含标准答案).doc VIP
- 专题四 技术图样 考向一 错标、多标、漏标 课件 2025届高中通用技术.pptx VIP
- 专题四 技术图样 考向四 三视图错误 学案(含解析)2025届高中通用技术.DOCX VIP
- 《七年级上册地理》重点精选ppt.pdf VIP
- 科技论文写作和文献检索公开课获奖课件.pptx VIP
- 专题四 技术图样 考向三 三视图选择 学案(含解析)2025届高中通用技术.DOCX VIP
- 专题四 技术图样 考向二 图样错误 学案(含解析)2025届高中通用技术.DOCX VIP
原创力文档

文档评论(0)