Compact Fenwick trees for dynamic ranking and selection

04/28/2019
by   Stefano Marchini, et al.
0

The Fenwick tree is a classical implicit data structure that stores an array in such a way that modifying an element, accessing an element, computing a prefix sum and performing a predecessor search on prefix sums all take logarithmic time. We introduce a number of variants which improve the classical implementation of the tree: in particular, we can reduce its size when an upper bound on the array element is known, and we can perform much faster predecessor searches. Our aim is to use our variants to implement an efficient dynamic bit vector: our structure is able to perform updates, ranking and selection in logarithmic time, with a space overhead in the order of a few percents, outperforming existing data structures with the same purpose. Along the way, we highlight the pernicious interplay between the arithmetic behind the Fenwick tree and the structure of current CPU caches, suggesting simple solutions that improve performance significantly.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/23/2021

Dynamic Suffix Array with Sub-linear update time and Poly-logarithmic Lookup Time

The Suffix Array SA_S[1… n] of an n-length string S is a lexicographical...
research
07/10/2018

Improved Time and Space Bounds for Dynamic Range Mode

Given an array A of n elements, we wish to support queries for the most ...
research
04/14/2021

Engineering Predecessor Data Structures for Dynamic Integer Sets

We present highly optimized data structures for the dynamic predecessor ...
research
02/08/2020

The Bloom Tree

The Bloom tree is a probabilistic data structure that combines the idea ...
research
04/04/2019

Proving tree algorithms for succinct data structures

Succinct data structures give space-efficient representations of large a...
research
08/22/2023

Dynamic Compact Data Structure for Temporal Reachability with Unsorted Contact Insertions

Temporal graphs represent interactions between entities over time. Decid...
research
08/27/2019

Partial Sums on the Ultra-Wide Word RAM

We consider the classic partial sums problem on the ultra-wide word RAM ...

Please sign up or login with your details

Forgot password? Click here to reset