将k个元素插入包含n个元素的二进制堆的时间复杂度

时间:2014-05-08 10:44:14

标签: data-structures binary-heap

将k个新元素插入到已包含n个元素的二进制堆中的时间复杂度是多少?我有约束,我需要在0(k + Log n)复杂度中插入k个元素。

提示:使用类似于堆构造的自下而上方法。

1 个答案:

答案 0 :(得分:0)

这个问题没有简单的答案。

二进制堆插入的平均复杂度为O(1),最差情况为O(log N)。无论k如何,复杂性都将保持在该范围内,但完成操作所需的实际时间(不是时间复杂度;我相信您可能会混淆这些术语)将取决于实现,平台和方式风在吹。

关于时间的具体答案,关闭的事情是,插入k元素所需的时间最多是线性比例k,最坏的比例是log (x)已整合Nk+N。如果N明显大于k,我们可以估算比例k log N的时间。

有关详细信息,请参阅:http://en.wikipedia.org/wiki/Binary_heap