We show that it is possible to store a dynamic ordered set S(n,u) of n integers drawn from a bounded universe of size u in space close to the information-theoretic lower bound and yet preserve the asymptotic time optimality of the operations. Our results leverage on the Elias-Fano representation of S(n, u) which takes EF(S(n, u)) = nâlog u/nâ + 2n bits of space and can be shown to be less than half a bit per element away from the information-theoretic minimum. Considering a RAM model with memory words of θ(log u) bits, we focus on the case in which the integers of S are drawn from a polynomial universe of size u = nγ, for any γ= θ(1). We represent S(n,u) with EF(S(n, u)) + o(n) bits of space and: 1. support static predecessor/successor queries in O(min1 + log u/n, log log n); 2. make S grow in an append-only fashion by spending O(1) per inserted element; 3. support random access in O(log n/log log n) worst-case, insertions/deletions in O(log n/log log n) amortized and predecessor/successor queries in O(min1 + log u/n, log log n) worst-case time. These time bounds are optimal.
Dynamic elias-fano representation
Pibiri, Giulio Ermanno;Venturini, Rossano
2017-01-01
Abstract
We show that it is possible to store a dynamic ordered set S(n,u) of n integers drawn from a bounded universe of size u in space close to the information-theoretic lower bound and yet preserve the asymptotic time optimality of the operations. Our results leverage on the Elias-Fano representation of S(n, u) which takes EF(S(n, u)) = nâlog u/nâ + 2n bits of space and can be shown to be less than half a bit per element away from the information-theoretic minimum. Considering a RAM model with memory words of θ(log u) bits, we focus on the case in which the integers of S are drawn from a polynomial universe of size u = nγ, for any γ= θ(1). We represent S(n,u) with EF(S(n, u)) + o(n) bits of space and: 1. support static predecessor/successor queries in O(min1 + log u/n, log log n); 2. make S grow in an append-only fashion by spending O(1) per inserted element; 3. support random access in O(log n/log log n) worst-case, insertions/deletions in O(log n/log log n) amortized and predecessor/successor queries in O(min1 + log u/n, log log n) worst-case time. These time bounds are optimal.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.