【发布时间】:2011-07-09 15:04:47
【问题描述】:
我正在拼命寻找一种数据结构,它允许我执行大量插入、几乎一样多的删除(可能相同的数量级)和非常快速的最高(或最低)查找) 价值。 删除将始终只影响最高(或最低)值。 问题是必须对值进行排序,并且在任何时候我都可以在其他两个之间的任何点插入一个元素。我想在任何时候快速读取(和删除)的唯一值是最大值(或者,再次,最小值)。
有什么推荐的吗?
请对您提出的答案进行算法复杂性分析。
【问题讨论】:
-
请澄清您的问题和cmets。当您似乎想要的只是插入时,您会说最大插入。此外,您说必须对值进行排序,但您还说您只需要读取最大值。最后,O(log n) 非常接近 O(1),但您似乎想要更快。您实际要执行多少操作?
-
操作应该在每秒 200 万次修改左右徘徊。绝大多数将是最大插入,而相对较小的百分比(
标签: algorithm performance data-structures tree big-o