English
Related papers

Related papers: A Concurrency-Optimal Binary Search Tree

200 papers

We revisit the classical problem of searching in a binary search tree (BST) using rotations, and present novel connections of this problem to a number of geometric and combinatorial structures. In particular, we show that the execution…

Data Structures and Algorithms · Computer Science 2016-03-29 László Kozma , Thatchaphol Saranurak

We present a work-efficient parallel level-synchronous Breadth First Search (BFS) algorithm for shared-memory architectures which achieves the theoretical lower bound on parallel running time. The optimality holds regardless of the shape of…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-09-20 Jesmin Jahan Tithi , Yonatan Fogel , Rezaul Chowdhury

Building concurrent spatial trees is more complicated than binary search trees since a space hierarchy should be preserved during modifications. We present a non-blocking quadtree-quadboost-that supports concurrent insert, remove, move, and…

Data Structures and Algorithms · Computer Science 2016-07-13 Keren Zhou , Guangming Tan , Wei Zhou

Augmenting an existing sequential data structure with extra information to support greater functionality is a widely used technique. For example, search trees are augmented to build sequential data structures like order-statistic trees,…

Data Structures and Algorithms · Computer Science 2024-05-20 Panagiota Fatourou , Eric Ruppert

Many concurrent dictionary implementations are designed and optimized for read-mostly workloads with uniformly distributed keys, and often perform poorly on update-heavy workloads. In this work, we first present a concurrent (a,b)-tree, the…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-01-03 Anubhav Srivastava , Trevor Brown

Algorithms for efficiently finding optimal alphabetic decision trees -- such as the Hu-Tucker algorithm -- are well established and commonly used. However, such algorithms generally assume that the cost per decision is uniform and thus…

Performance · Computer Science 2007-05-23 Michael B. Baer

A treap is a classic randomized binary search tree data structure that is easy to implement and supports O(\log n) expected time access. However, classic treaps do not take advantage of the input distribution or patterns in the input. Given…

Data Structures and Algorithms · Computer Science 2022-06-27 Honghao Lin , Tian Luo , David P. Woodruff

We present a simple $O(n^4)$-time algorithm for computing optimal search trees with two-way comparisons. The only previous solution to this problem, by Anderson et al., has the same running time, but is significantly more complicated and is…

Data Structures and Algorithms · Computer Science 2022-02-14 Marek Chrobak , Mordecai Golin , J. Ian Munro , Neal E. Young

We present a linearizable, non-blocking $k$-ary search tree ($k$-ST) that supports fast searches and range queries. Our algorithm uses single-word compare-and-swap (CAS) operations, and tolerates any number of crash failures. Performance…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-12-15 Trevor Brown , Hillel Avni

Learned Indexes are a novel approach to search in a sorted table. A model is used to predict an interval in which to search into and a Binary Search routine is used to finalize the search. They are quite effective. For the final stage,…

Data Structures and Algorithms · Computer Science 2022-09-20 Domenico Amato , Giosuè Lo Bosco , Raffaele Giancarlo

The dynamic optimality conjecture is perhaps the most fundamental open question about binary search trees (BST). It postulates the existence of an asymptotically optimal online BST, i.e. one that is constant factor competitive with any BST…

Data Structures and Algorithms · Computer Science 2015-08-20 Parinya Chalermsook , Mayank Goswami , Laszlo Kozma , Kurt Mehlhorn , Thatchaphol Saranurak

Consensus maximization is widely used for robust fitting in computer vision. However, solving it exactly, i.e., finding the globally optimal solution, is intractable. A* tree search, which has been shown to be fixed-parameter tractable, is…

Computer Vision and Pattern Recognition · Computer Science 2019-08-27 Zhipeng Cai , Tat-Jun Chin , Vladlen Koltun

We suggest a new non-recursive algorithm for constructing a binary search tree given an array of numbers. The algorithm has $O(N)$ time and $O(1)$ memory complexity if the given array of $N$ numbers is sorted. The resulting tree is of…

Data Structures and Algorithms · Computer Science 2022-07-20 Pavel S. Ruzankin

Tree data structures, such as red-black trees, quad trees, treaps, or tries, are fundamental tools in computer science. A classical problem in concurrency is to obtain expressive, efficient, and scalable versions of practical tree data…

Databases · Computer Science 2023-10-10 Ilya Kokorin , Dan Alistarh , Vitaly Aksenov

Behavior Trees (BTs) are becoming a popular tool to model the behaviors of autonomous agents in the computer game and the robotics industry. One of the key advantages of BTs lies in their composability, where complex behaviors can be built…

Robotics · Computer Science 2020-07-16 Michele Colledanchise , Lorenzo Natale

Balanced search trees are widely used in computer science to efficiently maintain dynamic ordered data. To support efficient set operations (e.g., union, intersection, difference) using trees, the join-based framework is widely studied.…

Data Structures and Algorithms · Computer Science 2025-10-24 Michael Goodrich , Yan Gu , Ryuto Kitagawa , Yihan Sun

We present a new universal source code for distributions of unlabeled binary and ordinal trees that achieves optimal compression to within lower order terms for all tree sources covered by existing universal codes. At the same time, it…

Data Structures and Algorithms · Computer Science 2021-09-06 J. Ian Munro , Patrick K. Nicholson , Louisa Seelbach Benkner , Sebastian Wild

Search trees on trees (STTs) are a far-reaching generalization of binary search trees (BSTs), allowing the efficient exploration of tree-structured domains. (BSTs are the special case in which the underlying domain is a path.) Trees on…

Data Structures and Algorithms · Computer Science 2020-10-29 Benjamin Aram Berendsohn , László Kozma

Using (a,b)-trees as an example, we show how to perform a parallel split with logarithmic latency and parallel join, bulk updates, intersection, union (or merge), and (symmetric) set difference with logarithmic latency and with information…

Data Structures and Algorithms · Computer Science 2016-05-12 Yaroslav Akhremtsev , Peter Sanders

Modern concurrent programming benefits from a large variety of synchronization techniques. These include conventional pessimistic locking, as well as optimistic techniques based on conditional synchronization primitives or transactional…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-10-15 Vincent Gramoli , Petr Kuznetsov , Srivatsan Ravi