博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉堆(优先队列)
阅读量:4132 次
发布时间:2019-05-25

本文共 270 字,大约阅读时间需要 1 分钟。

二叉堆概念

由完全二叉树表示

代码上完全二叉树可以用数组来存储

0 1 2 3 4 5 6

二叉堆性质

根据等比数列求和公式可以得到,n层的完全二叉树的节点数为2^n-1,最后一层的总节点数是之前所有层的节点数之和加一。

堆操作

新元素插入堆,堆大小++,新元素可能需要上浮,每次是否上浮只需要跟其父节点进行比较。

删除堆顶元素,将其与堆中最后一个元素交换,然后堆大小--,交换后的元素打破了堆的秩序,它需要跟两个子元素进行比较,做出下沉操作。

堆性能

N个元素的堆,插入元素的比较次数最多为logN,删除最大元素的比较次数最多为2logN

你可能感兴趣的文章
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
8种ES6中扩展运算符的用法
查看>>
【视频教程】Javascript ES6 教程28—ES6 Promise 实例应用
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
Linux查看mac地址
查看>>
Linux修改ip
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
IPS开发手记【一】
查看>>