随机访问时至少为O(ln N)且删除时至少为O(ln N)的数据结构[NOT DUPLICATE]

时间:2013-02-10 06:18:40

标签: c++ boost data-structures stl complexity-theory

没有标准容器从盒子中提供这样的保证,需要一些额外的操作(例如,像Jerry Coffin建议的那样),它不重复


是否存在随机访问时至少为O(ln N)且删除时为O(ln N)的现成数据结构/容器? (STL /升压/等)

对容器内元素的排序并不重要。

此类操作可能会连续发生,例如:

  1. 按索引随机访问(索引也是随机的,rand()%size())

  2. 删除此项目

  3. 按索引随机访问(索引也是随机的,rand()%size())

  4. 删除此项目

  5. 等...

1 个答案:

答案 0 :(得分:4)

由于您说排序无关紧要,您可以使用矢量在恒定时间内完成两种操作。

随机访问(显然)是恒定时间。

通过将元素交换为最后一个元素删除,然后删除最后一个元素,可以在常量时间内删除。