索引堆插入
来源:4-8 索引堆(Index Heap)
CHZone
2017-08-29
如果先insert(0,e1),再insert(100,e1)这样(数组中只插入了这两个元素),怎么建堆了?
写回答
1回答
-
liuyubobobo
2017-08-30
我们的堆在面对相同的元素的时候,不会进行shiftUp操作,所以只有这两个相同元素时,形成的堆是这个样子哦:
1 (外部索引从0开始,我们的实现插入索引堆后索引从1开始) / 101
要注意,索引堆只是索引排列成堆的形态(对应我们的实现代码中的indexes数组),但是具体的数据内容依然在他们自己的索引位置(对应我们的实现代码中的data数组)。如果对这一点理解的不够透彻,建议先继续往下看,在我们学习图的最小生成树和最短路径算法时,都会使用索引堆进行优化。到时候结合索引堆的具体应用,或许会理解的更透彻哦:)
这个课程的所有代码都可以再课程的github中找到。也可以自己亲自用具体的例子实验一下哦:)
https://github.com/liuyubobobo/Play-with-Algorithms
062017-08-30
相似问题