Predecessor Search

Gonzalo Navarro and Javiel Rojas-Ledesma

The predecessor problem is a key component of the fundamental sorting-and-searching core of algorithmic problems. While binary search is the optimal solution in the comparison model, more realistic machine models on integer sets open the door to a rich universe of data structures, algorithms, and lower bounds. In this article we review the evolution of the solutions to the predecessor problem, focusing on the important algorithmic ideas, from the famous data structure of van Emde Boas [1977] to the optimal results of Patrascu and Thorup [2014]. We also consider lower bounds, variants and special cases, as well as the remaining open questions.