O(1) 时间平衡二叉搜索时间中的最小/最大元素
Minimum/maximum element in a balanced binary search time in O(1) time
我知道我们可以在O(logn)时间内在二叉搜索树中找到最小值/最大值。但是 c++ 中的 map 为我们提供了恒定时间内的最小值/最大值。我们可以使用 map::begin 找到映射中的最小元素,使用 map::rbegin 找到最大值元素。这两个操作都需要恒定的时间。任何人都可以建议一种使查找最小/最大O(1)的方法吗?
BST 未实现C++映射。它由红黑树实现。如果要通过 O(1) 在 BST 中查找最小值/最大值,则可以将两个指针存储到树中最左侧的节点和最右侧的节点。否则,您可以使用 minheap 或 maxheap 来找出 O(1) 中的最小值/最大值。
相关文章:
- 使用堆查找第K个最大元素的时间复杂性
- 如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
- 比较向量中的元素时所花费的时间呈指数级增长
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- 将数组的元素插入映射的时间复杂度是多少?
- Deque 中元素的随机访问如何提供恒定的时间复杂度?
- 我们可以在队列前面以 O(1) 时间复杂度排队一个元素吗?
- 如何在对数时间内访问 c++ std::set 中的第 k 个元素?
- 如何检查 2 个 c++ 数组在 O(1) 或 O(log n) 时间复杂度中是否相同(所有元素都相同,顺序很重要)?
- 包含每个 k 个列表中至少 1 个元素的最小元素范围的时间复杂度
- 在O(1)时间C 中找到堆栈中的最小元素
- 如何检查 O(N) 时间复杂度的多重集中是否有 2 个或更多元素具有相同的值
- 如何恢复注册表项的所有元素?(上次写入时间,类型,值,名称...这是正确的方法吗?
- 从容器中获取随机元素,该容器在恒定时间内没有严格的元素顺序
- 对列表中的任意元素的常量时间访问 (C++)
- 在编译时间检查模板参数类型是否设置或多键,并且容器的元素类型是算术的
- DFS 访问内部的地图元素.时间复杂度
- 为什么我列表中的所有元素都有相同的创建时间
- O(1) 时间平衡二叉搜索时间中的最小/最大元素
- 获取树集 O(1) 时间中的最大元素