Storing a Sparse Table with 0(1) Worst Case Access Time
Journal of the ACM (JACM)
Recognizing primes in random polynomial time
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
The cell probe complexity of dynamic data structures
STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing
The spatial complexity of oblivious k-probe Hash functions
SIAM Journal on Computing
Journal of the ACM (JACM)
Membership in Constant Time and Almost-Minimum Space
SIAM Journal on Computing
Communications of the ACM
Tables Should Be Sorted (On Random Access Machines)
WADS '95 Proceedings of the 4th International Workshop on Algorithms and Data Structures
Lower Bounds for Static Dictionaries on RAMs with Bit Operations But No Multiplication
ICALP '96 Proceedings of the 23rd International Colloquium on Automata, Languages and Programming
Explicit Deterministic Constructions for Membership in the Bitprobe Model
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
Compact representations of ordered sets
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
ACM Computing Surveys (CSUR)
Rank and Select for Succinct Data Structures
Electronic Notes in Theoretical Computer Science (ENTCS)
Succinct suffix arrays based on run-length encoding
CPM'05 Proceedings of the 16th annual conference on Combinatorial Pattern Matching
Simple Random Access Compression
Fundamenta Informaticae
Fast, small, simple rank/select on bitmaps
SEA'12 Proceedings of the 11th international conference on Experimental Algorithms
Compressed property suffix trees
Information and Computation
Hi-index | 0.00 |
A static dictionary is a data structure for storing subsets of a finite universe U, so that membership queries can be answered efficiently. We study this problem in a unit cost RAM model with word size Ω(log |U|), and show that for n-element subsets, constant worst case query time can be obtained using B + O(log log |U|) + o(n) bits of storage, where B = ⌈log2 (n|U|⌉ is the minimum number of bits needed to represent all such subsets. For |U| = n logO(1) n the dictionary supports constant time rank queries.