【发布时间】:2017-10-07 19:41:19
【问题描述】:
由于平衡BST 将花费O(log(n)) 时间提取最大值(通过提取我的意思是查找和删除 Max 元素)。
另一方面,Max-heap 也需要 O(log(n)) 时间来提取最大元素。
他们中的任何人在 Extract-Max 操作中都比其他人更有优势吗?
【问题讨论】:
-
我知道。但是,如果我们想要执行 extract-max 那种操作怎么办。那么哪一个是平衡 bst 或 max heap 的合适数据结构。
-
在某些特殊情况下,
BST只需要比Heap多进行一次操作,否则两者都可以在相同数量的操作中提取最大值。但这一项操作可以忽略不计。 -
@GAURANGVYAS 找到平衡 Bst 的最右边节点需要 O(log(n)),执行删除操作需要 O(1)。
-
好的,找到最大元素需要 O(log n) 时间,因为我们需要找到最右边的元素,然后删除需要 O(1),因为它可能是叶节点或只有一个小孩。正确@ Sanket Makani 和@Satyendra
标签: algorithm data-structures binary-tree binary-search-tree binary-heap