堆是树的一种,最常见的堆就是二叉堆,也就是所谓的二叉树形式的堆,我们都知道树通常是使用链或者数组来实现的,但是因为堆使用数组,使用率特别的高所以堆使用数组来实现。堆的样子就是 堆顶大于或者小于两侧的元素
//大顶堆
9
8 7
6 7 4 1
//小顶堆
1
2 3
7 11 15 6
优先队列 优先级队列并不等于堆,它的意思就是有优先级的去出去,所以堆二叉搜索书等都可以去实现优先队列
各种堆的时间复杂度
可以看出其实二叉堆的性能相当一般,很多堆例如斐波那契堆的性能都是比二叉堆强了很多的。