用于快速插入/删除和排序的数据结构

em7*_*m70 1 algorithm tree performance big-o data-structures

我正在拼命寻找一种数据结构,允许我执行大量的插入,几乎同样多的删除(可能是相同的数量级),并且可以非常快速地查找最高(或最低,可以使用)值.删除将始终仅影响最高(或再次,最低)值.问题是必须对值进行排序,并且在任何时候我都可以在其他两个之间的任何点插入元素.我想要快速读取(和删除)的唯一值,在任何时候都是最大值(或者,再次,最小值).

你有什么建议吗?

请为您提出的答案提供算法复杂性分析.

小智 8

像你这样的厕所需要Max-Heap.

支持O(log n)插入,O(1)查找最大值和O(log n)删除最大值.

  • @emaster:"最大插入"是什么意思?你不只是意味着插入吗?如果插入max,那么它将在堆中为O(1).如果你只是想插入,那么你可以用你的结构在线性时间内排序n个数字.如果你只使用比较,有Omega(nlogn)下界进行排序...... (2认同)