插入O(log2n)但在O(1)中搜索的数据结构

时间:2017-08-01 07:13:19

标签: structure hashtable binary-search-tree

目前正致力于一项要求在O(log2n)中插入数据结构的赋值,但能够在O(1)中搜索元素。由于log2n插入,我正在考虑BST,但无法在O(1)中搜索。哈希表可以在最坏的情况下插入O(n),搜索O(1),但不幸的是,这并不符合O(log2n)插入要求。

有人有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将元素插入二叉树,并将指向该元素的指针插入哈希表。

或者,您可以使用O(1)将元素插入哈希表,并使用O(1)进行搜索,并且对于符合要求“插入O(磅N)” - 只运行LogBin(N)空循环。

关于“最坏情况/平均情况”:哈希表和二叉树(非平衡像rb,只是原始)在最坏的情况下具有O(N)。我认为,你的任务是关于“平均情况”,这是通常的。哈希表可以提供O(1)。要使用所选数据集保留攻击,请使用“universal hashing”。