Search 一组整数的有效数据结构

Search 一组整数的有效数据结构,search,data-structures,collections,set,Search,Data Structures,Collections,Set,我正在处理一组间隔为[0,m]的n个整数,需要进行以下操作: 发现 除去 插入 枚举(获取所有条目) 清除(删除所有条目) 目前我正在使用二叉树/堆来实现这一点,但不知道是否有更有效的数据结构。 我可以使用未初始化的RAM,据我所知,查找/删除/插入需要O(1),枚举/清除需要O(n),同时需要O(m)空间。(例如,请参阅) 是否有任何数据结构需要少于O(m)的空间,同时仍然保持(摊销)最坏情况复杂性O(1)用于查找/删除/插入,O(n)用于枚举/清除 请注意:摊销方式如下:“给定n个操作,

我正在处理一组间隔为[0,m]的n个整数,需要进行以下操作:

  • 发现
  • 除去
  • 插入
  • 枚举(获取所有条目)
  • 清除(删除所有条目)
目前我正在使用二叉树/堆来实现这一点,但不知道是否有更有效的数据结构。 我可以使用未初始化的RAM,据我所知,查找/删除/插入需要O(1),枚举/清除需要O(n),同时需要O(m)空间。(例如,请参阅)

是否有任何数据结构需要少于O(m)的空间,同时仍然保持(摊销)最坏情况复杂性O(1)用于查找/删除/插入,O(n)用于枚举/清除

请注意:摊销方式如下:“给定n个操作,我们总共有常数*n个操作,因此摊销最坏情况为O(1)”。不是这样:“给定这个概率分布和假设X,Y,Z,最坏情况的平均值很可能在O(1)中。”
所以我不是在寻找基于哈希表的解决方案,这些解决方案将在O(1)“可能大部分时间”中工作

不,没有这种已知的数据结构。见Mikkel Thorup的“Mihai Pǎtraşcu:讣告和公开问题”,第1节,问题1。“如果我们想要查找和更新的联合绑定,最著名的绑定是O(sqrt(logn/logn))”

查看(虽然可能使用哈希表)Y-fast尝试不需要哈希表,但查找/删除/插入的成本是Θ(sqrt(logm)),它是超常量。