是否有可以在O(log n)时间内插入索引的数据结构?

时间:2017-02-25 03:40:27

标签: data-structures tree insert time-complexity

我正在寻找具有以下属性的数据结构:

  • 它包含元素,由连续数字范围(例如,从1到k)索引,作为数组;

  • 通过索引访问元素的速度尽可能快,希望O(1)操作;

  • 在给定索引处插入元素是O(log n)操作。

我知道堆中的插入操作是O(log n)但我不知道如何在这里使用堆。我认为可以基于树构建所需的数据结构,但我还没有找到任何东西。

1 个答案:

答案 0 :(得分:0)

你可以使用哈希表,因为你知道愤怒是1,2 .... k index。

因此,您需要实现一个为每个元素分配唯一索引的哈希函数。或者如果你有多个元素,那么你也需要处理哈希冲突,但根据你的问题规范,哈希表要好得多。

所以访问将是O(1) 并插入O(1)操作