2015-09-20 69 views

回答

0

在最坏的情况下,一个将结束遍历整个二进制堆来搜索元素,并因此的时间复杂度是O(N),其是线性的元件的数目在二进制堆

二进制堆并不意味着用作搜索数据结构。它们被用于实现优先级队列,他们处理那些经常使用的所有操作得很好不是线性的时间

插入:O(log n)的

删除:O(log n)的

increase_key:O(log n)的

decrease_key:O(log n)的

extract_max或extract_min:O(log n)的

如果你想搜索操作要始终O(log n)的像AVL或红黑树使用平衡搜索树。

+0

@Dante ...希望它会走多久。谢谢。但是我的问题如果一个问题是以一个大的“O”符号给TC,那么答案会是什么? 我同意我不应该遍历堆,但在一些论坛中,我得到的答案是O(n),即遍历时间。我强烈的意思是它不应该被遍历。 – Bishnu