Weighted dynamic finger in binary search trees

10/03/2018
by   John Iacono, et al.
0

It is shown that the online binary search tree data structure GreedyASS performs asymptotically as well on a sufficiently long sequence of searches as any static binary search tree where each search begins from the previous search (rather than the root). This bound is known to be equivalent to assigning each item i in the search tree a positive weight w_i and bounding the search cost of an item in the search sequence s_1,...,s_m by O(1+ ∑_(s_i-1,s_i) ≤ x ≤(s_i-1,s_i)w_x/(w_s_i,w_s_i-1)) amortized. This result is the strongest finger-type bound to be proven for binary search trees. By setting the weights to be equal, one observes that our bound implies the dynamic finger bound. Compared to the previous proof of the dynamic finger bound for Splay trees, our result is significantly shorter, stronger, simpler, and has reasonable constants.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/27/2018

Dynamic Trees with Almost-Optimal Access Cost

An optimal binary search tree for an access sequence on elements is a st...
research
08/02/2019

Competitive Online Search Trees on Trees

We consider the design of adaptive data structures for searching element...
research
10/21/2022

Splay Top Trees

The top tree data structure is an important and fundamental tool in dyna...
research
09/05/2018

Multi-finger binary search trees

We study multi-finger binary search trees (BSTs), a far-reaching extensi...
research
07/15/2019

Splaying Preorders and Postorders

Let T be a binary search tree. We prove two results about the behavior o...
research
01/08/2023

Dynamic Binary Search Trees: Improved Lower Bounds for the Greedy-Future Algorithm

Binary search trees (BSTs) are one of the most basic and widely used dat...
research
08/01/2019

Dynamic Optimality Refuted -- For Tournament Heaps

We prove a separation between offline and online algorithms for finger-b...

Please sign up or login with your details

Forgot password? Click here to reset