首页 > 试题广场 >

对关键码集合K={22,11,38,68,43,6,10,4

[单选题]
对关键码集合K={22,11,38,68,43,6,10,48},用筛选法创建最小堆时,从关键码(      )开始调整
  • 22
  • 38
  • 68
  • 48
最小堆的构建:
      初始数组为:9,3,7,6,5,1,10,2
      按照完全二叉树,将数字依次填入。
      填入后,找到最后一个结点(本示例为数字2的节点),从它的父节点(本示例为数字6的节点)
开始调整。根据性质,小的数字往上移动;至此,第1次调整完成。
      注意,被调整的节点,还有子节点的情况,需要递归进行调整。
      第二次调整,是数字6的节点数组下标小1的节点(比数字6的下标小1的节点是数字7的节点),
用刚才的规则进行调整。以此类推,直到调整到根节点。

发表于 2020-03-05 11:06:32 回复(0)
这题有毒,正确答案应该是6,11,10,48,43,38,22,68
发表于 2019-08-15 10:06:48 回复(0)
筛选法应该就是heapify的过程 如果从索引1开始的话 第一个非叶子节点就是8/2=4 从第四个开始
发表于 2020-02-24 10:34:07 回复(0)
啥意思啊 两个集合都不一样
发表于 2018-12-28 21:58:49 回复(0)
筛选法就是开始按现有的顺序从上到下,从左到右放到一个完全二叉树里面。
然后把这个树调节成堆。调节的时候从最后一个有儿子的节点开始。 也就是从下往上,从右往左找,找到的第一个有孩子的节点开始。依次把各个节点及下面的孩子组成的树调节成堆。

筛选法建堆例子(侵删):

至于本题,打扰了。
发表于 2018-12-29 19:10:55 回复(3)
                                  22
                                /       \
                             11        38
                           /     \      /    \
                        68     43  6    10
                       /
                     48 
             从下往上,从右到左的顺序,从第一个非叶结点开始调整
发表于 2020-05-26 16:41:56 回复(0)
68
 就是上面说的从上到下排树,从下到上找第一个有叶子节点的节点
发表于 2019-04-23 20:22:07 回复(0)
68是对的呀,68是最后一个有孩子的节点,68>48,
发表于 2019-09-28 20:04:49 回复(0)
从最后一个非叶子结点开始调整
发表于 2021-05-16 01:13:36 回复(0)
调节的时候,当创建最小堆时,从下往上,从右往左的顺序,从第一个非叶结点开始调整。
发表于 2022-04-08 21:34:37 回复(0)
二叉树最后一个有孩子的节点
发表于 2022-03-12 22:19:57 回复(0)
按现有顺序从上到下,从左到右放到一个完全二叉树里面,然后把这个树调节成堆。
发表于 2022-02-18 15:58:58 回复(0)
筛选法就是
(1)开始按现有的顺序从上到下,从左到右放到一个完全二叉树里面。
(2)然后把这个树调节成堆。
调节的时候从最后一个有儿子的节点开始。 
也就是从下往上,从右往左找,找到的第一个有孩子的节点开始。
依次把各个节点及下面的孩子组成的树调节成堆。
发表于 2021-07-13 13:33:34 回复(0)
不能边读入边建堆吗?
发表于 2021-04-19 22:39:38 回复(0)
堆调整是从最后一个非叶节点开始调整的
发表于 2021-04-05 16:25:55 回复(0)
第一个看68没问题,68子节点是10和48,不需要调整啊,之后看38,38子节点是43和6,这时候不就要交换38和43吗,这不就是第一个调整的点吗
发表于 2020-12-27 10:00:42 回复(0)
<p><em>我们称这个自堆顶至叶子结点的调整过程为筛选</em></p><p><br></p><p><em>从一个无序序列构建堆的过程就是一个反复筛选的过程。</em></p><p><br></p><p><strong><em>若将此序列看成一个完全二叉树,则最后一个非终端节点是第 N/2 向下取整个元素,由此筛选只需从第N/2个元素开始。</em></strong></p><p><br></p><p>void HeapSort(HeapType &amp;H)</p><p> for(i = H.length/2; i &gt;0; i—)</p><p><br></p><p><em>上述内容参考严书数据结构 280-282页 </em></p><p><br></p><p>对于本题而言 8/2=4 第四个元素即68</p><p><br></p><p><br></p><p><br></p>
发表于 2020-11-25 20:55:20 回复(0)
1
发表于 2019-12-27 22:25:59 回复(0)
初始建堆是从完全二叉树的第i(i=n/2)个结点开始调整。n表示序列有n个数。
发表于 2019-09-26 15:23:38 回复(0)

做得一脸懵比

发表于 2019-09-22 10:45:15 回复(0)