arXiv · 2310.05298
Efficient Self-Adjusting Search Trees via Lazy Updates
Abstract
Self-adjusting data structures are a classic approach to adapting the complexity of operations to the data access distribution. While several self-adjusting variants are known for both binary search trees and B-Trees, existing constructions come with limitations. For instance, existing works on self-adjusting B-Trees do not provide static-optimality and tend to be complex and inefficient to implement in practice. In this paper, we provide a new approach to build efficient self-adjusting search trees based on state-of-the-art non-adaptive structures. We illustrate our approach to obtain a new efficient self-adjusting Interpolation Search Tree (IST) and B-Tree, as well as a new self-adjusting tree called the Log Tree. Of note, our self-adjusting IST has expected complexity in $O(\log \frac{\log m}{\log ac(x)})$, where $m$ is the total number of requests and $ac(x)$ is the number of requests to key $x$. Our technique leads to simple constructions with a reduced number of pointer manipulations: this improves cache efficiency and even allows an efficient concurrent implementation.
Explore related subjects
Keep this discovery
Alexander Slastin, Dan Alistarh, Vitaly Aksenov. 2023-10-08. Efficient Self-Adjusting Search Trees via Lazy Updates. https://arxiv.org/abs/2310.05298
Cite the original work for its findings. Save a collection to share your selection of sources.