Search 一组整数的有效数据结构
我正在处理一组间隔为[0,m]的n个整数,需要进行以下操作: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个操作,
- 发现
- 除去
- 插入
- 枚举(获取所有条目)
- 清除(删除所有条目)
所以我不是在寻找基于哈希表的解决方案,这些解决方案将在O(1)“可能大部分时间”中工作 不,没有这种已知的数据结构。见Mikkel Thorup的“Mihai Pǎtraşcu:讣告和公开问题”,第1节,问题1。“如果我们想要查找和更新的联合绑定,最著名的绑定是O(sqrt(logn/logn))”查看(虽然可能使用哈希表)Y-fast尝试不需要哈希表,但查找/删除/插入的成本是Θ(sqrt(logm)),它是超常量。