最小堆的平均时间成本是多少

时间:2013-05-16 22:56:51

标签: heap big-o

查看我的测试数据结构我注意到了一些事情,有人请帮助和回答,在最小堆(优先级队列)中搜索最大密钥的平均时间成本(大O)是多少,它是O(log N)还是O(N)?

1 个答案:

答案 0 :(得分:1)

在最小堆中搜索最大元素是O(N)

你必须到树的最低层(最多一半的孩子)并检查它们中的每一个,因为它们彼此没有特定的顺序。

这需要检查N/2个节点(假设您使用标准算法查找最大值)O(N)

如果您有兴趣在堆中找到最大元素,则可以使用最大堆。如果内存不是一个大问题,你可以使用最大堆和最小堆,这将允许你O(1)获得最大和最小元素。