Predecessor search with distance-sensitive query time
Abstract
A predecessor (successor) search finds the largest element smaller than the input string (the smallest element larger than or equal to , respectively) out of a given set ; in this paper, we consider the static case (i.e., is fixed and does not change over time) and assume that the elements of are available for inspection. We present a number of algorithms that, with a small additional index (usually of O(n log w) bits, where is the string length), can answer predecessor/successor queries quickly and with time bounds that depend on different kinds of distance, improving significantly several results that appeared in the recent literature. Intuitively, our first result has a running time that depends on the distance between and : it is especially efficient when the input is either very close to or very far from or ; our second result depends on some global notion of distance in the set , and is fast when the elements of are more or less equally spaced in the universe; finally, for our third result we rely on a finger (i.e., an element of ) to improve upon the first one; its running time depends on the distance between the input and the finger.
Cite
@article{arxiv.1209.5441,
title = {Predecessor search with distance-sensitive query time},
author = {Djamal Belazzougui and Paolo Boldi and Sebastiano Vigna},
journal= {arXiv preprint arXiv:1209.5441},
year = {2012}
}