English

Predecessor search with distance-sensitive query time

Data Structures and Algorithms 2012-09-26 v1

Abstract

A predecessor (successor) search finds the largest element xx^- smaller than the input string xx (the smallest element x+x^+ larger than or equal to xx, respectively) out of a given set SS; in this paper, we consider the static case (i.e., SS is fixed and does not change over time) and assume that the nn elements of SS are available for inspection. We present a number of algorithms that, with a small additional index (usually of O(n log w) bits, where ww 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 xx and x±x^\pm: it is especially efficient when the input xx is either very close to or very far from xx^- or x+x^+; our second result depends on some global notion of distance in the set SS, and is fast when the elements of SS are more or less equally spaced in the universe; finally, for our third result we rely on a finger (i.e., an element of SS) to improve upon the first one; its running time depends on the distance between the input and the finger.

Keywords

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}
}
R2 v1 2026-06-21T22:10:25.155Z