我可以仅使用percolateDown实现堆吗?

时间:2012-10-01 06:47:20

标签: c data-structures heap

我需要在C中实现Heap数据结构。 在我做一些研究时,我看到人们使用buildHeap(),constructHeap()将数组转换为堆。我的问题是,每次我需要添加到堆中时,我可以在新添加的项目上调用percolateDown()而不是实现这些函数吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

堆可以在线性时间内构建,而您建议的方法将需要O(N log(N))时间。更好地在单独的函数中构造堆以获得更好的性能。