Papers › Lazy Search Trees
Lazy Search Trees
Bryce Sandlund, Sebastian Wild
The archive published only this paper's code-link row. Authors, date and abstract are from arXiv's metadata (CC0), read from the Kaggle arXiv metadata snapshot of 2026-09-12 where its title matched the archive's; the title is the archive's.
We introduce the lazy search tree data structure. The lazy search tree is a comparison-based data structure on the pointer machine that supports order-based operations such as rank, select, membership, predecessor, successor, minimum, and maximum while providing dynamic operations insert, delete, change-key, split, and merge. We analyze the performance of our data structure based on a partition of current elements into a set of gaps {Δᵢ} based on rank. A query falls into a particular gap and splits the gap into two new gaps at a rank r associated with the query operation. If we define B = ∑ᵢ |Δᵢ| log₂(n/|Δᵢ|), our performance over a sequence of n insertions and q distinct queries is O(B + min(n loglogn, n logq)). We show B is a lower bound. Effectively, we reduce the insertion time of binary search trees from Θ(logn) to O(min(log(n/|Δᵢ|) + loglog|Δᵢ|, logq)), where Δᵢ is the gap in which the inserted element falls. Over a sequence of n insertions and q queries, a time bound of O(n logq + q logn) holds; better bounds are possible when queries are non-uniformly distributed. As an extreme case of non-uniformity, if all queries are for the minimum element, the lazy search tree performs as a priority queue with O(loglogn) time insert and decrease-key operations. The same data structure supports queries for any rank, interpolating between binary search trees and efficient priority queues. Lazy search trees can be implemented to operate mostly on arrays, requiring only O(min(q, n)) pointers. Via direct reduction, our data structure also supports the efficient access theorems of the splay tree, providing a powerful data structure for non-uniform element access, both when the number of accesses is small and large.
Code
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
Not run by Syntology. Nothing on this page verifies that the listed code works.
Results from the paper archive 2025-07-28
No leaderboard rows for this paper in the archive.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections