Abstract
In this paper we consider the problem of compactly representing a rewritable array of bit-strings. The operations supported are: create(N; k), which creates a new array of size N, where each entry is of size at most k bits and equal to 0; set(i; v), which sets A[i] to v, provided that v is at most k bits long and get(i) which returns the value of A[i]. Our aim is to approach the minimum possible space bound of S = σN-1i=0 jA[i]j, where jA[i]j ≥ 1 is the length in bits of the number in A[i], while simultaneously supporting operations in O(1) time. We call such a data structure a Compact Dynamic Rewriteable Array (CDRW) array. On the word RAM model with word size w, for n < 2w and k ≤ w, we give practical solutions based on compact hashing that achieve O(1=ϵ) expected time for get and set and use (1 + ϵ)S + O(N) bits, for any constant ϵ < 0. Experimental evaluation of our (preliminary, only somewhat optimized) implementations shows excellent performance in terms of both space and time, particularly when heuristics are added to our base algorithms.
Cite
CITATION STYLE
Poyias, A., Puglisi, S. J., & Raman, R. (2017). Compact dynamic rewritable (CDRW) arrays. In Proceedings of the Workshop on Algorithm Engineering and Experiments (Vol. 0, pp. 109–119). Society for Industrial and Applied Mathematics Publications. https://doi.org/10.1137/1.9781611974768.9
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.