O(1) 时间平衡二叉搜索时间中的最小/最大元素

Minimum/maximum element in a balanced binary search time in O(1) time

本文关键字:时间 元素 平衡 搜索      更新时间:2023-10-16

我知道我们可以在O(logn)时间内在二叉搜索树中找到最小值/最大值。但是 c++ 中的 map 为我们提供了恒定时间内的最小值/最大值。我们可以使用 map::begin 找到映射中的最小元素,使用 map::rbegin 找到最大值元素。这两个操作都需要恒定的时间。任何人都可以建议一种使查找最小/最大O(1)的方法吗?

BST 未实现C++映射。它由红黑树实现。如果要通过 O(1) 在 BST 中查找最小值/最大值,则可以将两个指针存储到树中最左侧的节点和最右侧的节点。否则,您可以使用 minheap 或 maxheap 来找出 O(1) 中的最小值/最大值。

相关文章: