首页 > 试题广场 >

堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或

[单选题]
堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的 push 操作,则一个大根堆依次输入 3,7,2,4,1,5,8 后,得到的堆的结构示意图是下述图表中的哪个?()
A.O(n)
B.O(n) ,


C.O(logn)
D.O(n),

  • A
  • B
  • C
  • D
推荐
答案是:D
初始建堆操作复杂度是 O(n)的.
建堆时,由于只采取Push的操作,所以每次将新的数字Push到堆的最后一位,然后按照插入到原则,进行堆的由下至上调整.
最终得出D为答案.

编辑于 2017-05-23 14:12:00 回复(3)
为啥不是b
发表于 2017-07-30 17:17:23 回复(0)
堆的插入操作就是将元素插入到堆的最后,然后继续将其调整为堆。本题中
发表于 2017-08-01 13:52:18 回复(8)

发表于 2018-07-14 16:15:06 回复(1)
有图有真相
发表于 2020-05-29 11:55:46 回复(0)
初始建堆的时间复杂度为O(n),堆是利用完全二叉树的结构来维护一组数据,然后进行相关***作,一般的***作进行一次的时间复杂度在O(1)~O(logn)之间。采用push的***作实现大根堆,每次输入后,为了保证是大根堆,每插入一个元素,调整一次。具体过程如下:

发表于 2018-10-08 18:52:27 回复(3)
因为采用push操作来建立大根堆,所以每插入一个元素都要使该堆为大根堆
发表于 2017-07-01 10:18:27 回复(0)
<p>边插入边调整</p>
发表于 2020-09-15 21:02:12 回复(0)
插入,调整,再插入,再调整
发表于 2017-09-08 16:54:04 回复(0)
如果只是用堆的   push   操作,则一个大根堆依次输入   3,7,2,4,1,5,8   后,得到的堆的结构示意图是下述图表中的哪个?()
这个问题有谁可以解释下呢???
发表于 2017-06-20 08:35:19 回复(2)
每插入一个数字都要是堆
发表于 2018-03-30 09:18:41 回复(0)
这个建堆操作并不是筛选法和插入法,需要按照题目说的走,每插入一个就调整一波
发表于 2022-08-26 20:13:38 回复(0)
352应该继续排
发表于 2021-05-15 21:03:48 回复(0)
答案是:D
初始建堆操作复杂度是 O(n)的.
建堆时,由于只采取Push的操作,所以每次将新的数字Push到堆的最后一位,然后按照插入到原则,进行堆的由下至上调整.
最终得出D为答案.
发表于 2022-11-14 14:58:26 回复(0)
数据依次输入堆中,每次都进行调整。而不是给一组数据,将其建成堆。
发表于 2022-03-28 18:47:53 回复(0)
收藏+1
发表于 2022-03-16 21:18:07 回复(0)
初始建堆的时间复杂度为o(n)
发表于 2021-10-05 12:11:43 回复(0)
每插入一次就调整一次
发表于 2021-09-27 14:20:57 回复(0)
注意是push操作,即一个元素一个元素添加,而不是按照题中给的序列作为二叉树进行调整为初始堆
发表于 2021-07-15 11:00:52 回复(0)
push操作即当做每次向堆中插入一个数,因为要求是大顶堆,所以每push一个数就要调整一次堆,使得其符合大顶堆要求。比如:先放入3作为,然后7放在3的左子树,此时按照大顶堆要求调整一下,再继续放数字......
发表于 2021-02-24 10:04:24 回复(0)
可以看heap插入操作和代码
发表于 2021-02-12 19:52:16 回复(0)