美文网首页
堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小

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

作者: MaterialCoder | 来源:发表于2017-07-28 22:38 被阅读0次

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

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

[解析]

堆是利用完全二叉树的结构来维护一组数据,然后进行相关操作,一般的操作进行一次的时间复杂度在O(1)~O(logn)之间。采用push的操作实现大根堆,每次输入后,为了保证是大根堆,每插入一个元素,调整一次。具体过程如下:

所以正确答案为D。

相关文章

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

    堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复...

  • 2018-08-14 LeetCode数据流的中位数

    较小的一半数放在大根堆较大的在小根堆,大根堆堆顶为较小数的最大值,小根堆的堆顶为较大数的最小值始终保持大根堆和小根...

  • iOS堆排序

    堆排序的思想 利用大顶堆(小顶堆)堆顶记录的是最大关键字(最小关键字)这一特性,使得每次从无序中选择最大记录(最小...

  • 堆排序算法模板Python

    演示: 在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。堆中定义以下...

  • 优先队列找出最小的k个数

    优先队列内部维持了一个堆,堆的特点是堆顶元素最大(或最小),利用优先队列查找最小的k个数的方法:1、把前k个数当成...

  • 02-13:leetcode重刷5之最大堆/最小堆

    1、最大堆/最小堆结构 (1)最大堆 堆顶元素最大,其他元素都小于等于:堆顶 (2)最小堆 堆顶元素最小,其他元素...

  • 堆 &heap & priority_queue &实现

    [toc] 什么是堆? 堆是一种数据结构,可以用来实现优先队列 大根堆 大根堆,顾名思义就是根节点最大。我们先用小...

  • 堆排序详解

    1. 什么是堆? 堆其实就是一颗完全二叉树堆有大根堆和小根堆,望文生义,即是根节点分别是最大和最小节点。 2.堆的...

  • 二叉堆应用一:堆排序

    什么是堆? 如图所示:当父结点的值,都比其子结点的值小时,就是小根堆,一个小根堆中,最小的值肯定在堆顶。 同理,当...

  • PriorityQueue 使用方法

    求最大k个元素的问题:使用小顶堆 求最小k个元素的问题:使用大顶堆 参考:1 采用PriorityQueue实现大...

网友评论

      本文标题:堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小

      本文链接:https://www.haomeiwen.com/subject/uwtqlxtx.html