Lazy Search Trees

10/17/2020
by   Bryce Sandlund, et al.
0

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 {Δ_i} 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 = ∑_i |Δ_i| log_2(n/|Δ_i|), our performance over a sequence of n insertions and q distinct queries is O(B + min(n loglog n, n log q)). We show B is a lower bound. Effectively, we reduce the insertion time of binary search trees from Θ(log n) to O(min(log(n/|Δ_i|) + loglog |Δ_i|, log q)), where Δ_i is the gap in which the inserted element falls. Over a sequence of n insertions and q queries, a time bound of O(n log q + q log n) 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(loglog n) 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/29/2018

Succinct data structure for dynamic trees with faster queries

Navarro and Sadakane [TALG 2014] gave a dynamic succinct data structure ...
research
09/04/2020

Access-Adaptive Priority Search Tree

In this paper we show that the priority search tree of McCreight, which ...
research
01/03/2019

Mergeable Dictionaries With Shifts

We revisit the mergeable dictionaries with shift problem, where the goal...
research
08/18/2022

A Verified Implementation of B+-Trees in Isabelle/HOL

In this paper we present the verification of an imperative implementatio...
research
06/03/2020

Dynamic Merkle B-tree with Efficient Proofs

We propose and define a recursive Merkle structure with q-mercurial comm...
research
06/07/2023

Maintaining the cycle structure of dynamic permutations

We present a new data structure for maintaining dynamic permutations, wh...
research
06/28/2021

Dynamic Schnyder Woods

A realizer, commonly known as Schnyder woods, of a triangulation is a pa...

Please sign up or login with your details

Forgot password? Click here to reset