【发布时间】:2016-05-06 20:03:07
【问题描述】:
不是遍历整个数组需要 O(n) 时间,找到最大值的最佳数据结构是什么?例如。二叉搜索树的平均情况为 O(log n),最坏的情况为 O(n)。有没有 O(log n) 最坏的情况?
【问题讨论】:
-
这个问题需要澄清。如果 find 时间是唯一的约束,您可以简单地通过将负担转移到插入操作来保持数组排序,将对象插入正确的位置。相关地,您可以使用heap。
-
你的意思是最大堆吗?
-
是的,对于 find max 来说,二进制堆是 O(1) 对吗?
-
@Naomi 确实如此
标签: tree time-complexity binary-search-tree