Results 11 - 20
of
45
Randomized Binary Search Trees
- Journal of the ACM
, 1997
"... In this paper we present randomized algorithms over binary search trees such that: a) the insertion of a set of keys, in any fixed order, into an initially empty tree always produces a random binary search tree; b) the deletion of any key from a random binary search tree results in a random binary s ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
In this paper we present randomized algorithms over binary search trees such that: a) the insertion of a set of keys, in any fixed order, into an initially empty tree always produces a random binary search tree; b) the deletion of any key from a random binary search tree results in a random binary search tree; c) the random choices made by the algorithms are based upon the sizes of the subtrees of the tree; this implies that we can support accesses by rank without additional storage requirements or modification of the data structures; and d) the cost of any elementary operation, measured as the number of visited nodes, is the same as the expected cost of its standard deterministic counterpart; hence, all search and update operations have guaranteed expected cost O(log n), but now irrespective of any assumption on the input distribution. 1. Introduction Given a binary search tree (BST, for short), common operations are the search of an item given its key and the retrieval of the inform...
An Evaluation of Self-adjusting Binary Search Tree Techniques
- Software Practice and Experience
, 1993
"... Much has been said in praise of... this paper, we compare the performance of three different techniques for self-adjusting trees with that of AVL and random binary search trees. Comparisons are made for various tree sizes, levels of key-access-frequency skewness and ratios of insertions and deletion ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
Much has been said in praise of... this paper, we compare the performance of three different techniques for self-adjusting trees with that of AVL and random binary search trees. Comparisons are made for various tree sizes, levels of key-access-frequency skewness and ratios of insertions and deletions to searches. The results show that, because of the high cost of maintaining self-adjusting trees, in almost all cases the AVL tree outperforms all the self-adjusting trees and in many cases even a random binary search tree has better performance, in terms of CPU time, than any of the self-adjusting trees. Self-adjusting trees seem to perform best in a highly dynamic environment, contrary to intuition.
Discrete Loops and Worst Case Performance
- Computer Languages
, 1994
"... In this paper so-called discrete loops are introduced which narrow the gap between general loops (e.g. while- or repeat-loops) and for-loops. Alt- hough discrete loops can be used for applications that would otherwise require general loops, discrete loops are known to complete in any case. Furthe ..."
Abstract
-
Cited by 14 (7 self)
- Add to MetaCart
In this paper so-called discrete loops are introduced which narrow the gap between general loops (e.g. while- or repeat-loops) and for-loops. Alt- hough discrete loops can be used for applications that would otherwise require general loops, discrete loops are known to complete in any case. Furthermore it is possible to determine the number of iterations of a discrete loop, while this is trivial to do for for-loops and extremely difficult for general loops. Thus discrete loops form an ideal frame-work for determining the worst case timing behavior of a program and they are especially useful in implementing real-time systems and proving such systems correct.
Algorithm Design and Software Libraries: Recent Developments in the LEDA Project
- In Proc. IFIP 12th World Computer Congress
, 1992
"... LEDA (Library of Efficient Data Types and Algorithms) is an ongoing project which aims to build a library of the efficient data structures and algorithms used in combinatorial computing [12]. We discuss three recent aspects of the project: The cost of flexibility, implementation parameters, and a ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
LEDA (Library of Efficient Data Types and Algorithms) is an ongoing project which aims to build a library of the efficient data structures and algorithms used in combinatorial computing [12]. We discuss three recent aspects of the project: The cost of flexibility, implementation parameters, and augmented trees. Keyword Codes: D.2.0; D.1.5; F.2.2 Keywords: Software Engineering, General; object-oriented Programming; Nonnumerical Algorithms and Problems 1 Introduction We will treat the topic on the basis of a concrete example: the LEDA (Library of Efficient Data Types and Algorithms) software library. The authors started the LEDA project in 1989 as an attempt to narrow the gap between algorithm research, teaching and implementation. The project aims to build a library of the efficient data structures and algorithms used in combinatorial computing. The rationale of the project is given in [12] and briefly reviewed in section 2. LEDA is freely available by anonymous ftp for education...
Efficient Splitting and Merging Algorithms for Order Decomposable Problems
, 1997
"... Let S be a set whose items are sorted with respect to d ? 1 total orders OE 1 ; : : : ; OE d , and which is subject to dynamic operations, such as insertions of a single item, deletions of a single item, split and concatenate operations performed according to any chosen order OE i (1 i d). This g ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Let S be a set whose items are sorted with respect to d ? 1 total orders OE 1 ; : : : ; OE d , and which is subject to dynamic operations, such as insertions of a single item, deletions of a single item, split and concatenate operations performed according to any chosen order OE i (1 i d). This generalizes to dimension d ? 1 the notion of concatenable data structures, such as the 2-3-trees, which support splits and concatenates under a single total order. The main contribution of this paper is a general and novel technique for solving order decomposable problems on S, which yields new and efficient concatenable data structures for dimension d ? 1. By using our technique we maintain S with the following time bounds: O(log n) for the insertion or the deletion of a single item, where n is the number of items currently in S; O(n 1\Gamma1=d ) for splits and concatenates along any order, and for rectangular range queries. The space required is O(n). We provide several applications of ...
Worst-Case Space and Time Complexity of Recursive Procedures
"... The purpose of this paper is to show that recursive procedures can be used for implementing real-time applications without harm, if a few conditions are met. These conditions ensure that upper bounds for space and time requirements can be derived at compile time. Moreover they are simple enough such ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
The purpose of this paper is to show that recursive procedures can be used for implementing real-time applications without harm, if a few conditions are met. These conditions ensure that upper bounds for space and time requirements can be derived at compile time. Moreover they are simple enough such that many important recursive algorithms can be implemented, for example Mergesort or recursive tree-traversal algorithms. In addition,
Adaptive Heuristics for Binary Search Trees and Constant Linkage Cost
- In Proc. of the 2nd ACM-SIAM Symposium on Discrete Algorithms
, 1995
"... We present lower and upper bounds on adaptive heuristics for maintaining binary search trees using a constant number of link or pointer changes for each operation (constant linkage cost (CLC)). We show that no adaptive heuristic with an amortized linkage cost of o(log n) can be competitive. In part ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
We present lower and upper bounds on adaptive heuristics for maintaining binary search trees using a constant number of link or pointer changes for each operation (constant linkage cost (CLC)). We show that no adaptive heuristic with an amortized linkage cost of o(log n) can be competitive. In particular, we show that any heuristic that performs f(n) = o(log n) promotions (rotations) amortized over each access has a competitive ratio of at least \Omega\Gammaast n=f(n)) against an oblivious adversary, and any heuristic that performs f(n) = o(log n) pointer changes amortized over each access has a competitive ratio of at least\Omega\Gamma log n f(n) log(log n=f(n)) ) against an adaptive online adversary. In our investigation of upper bounds we present four adaptive heuristics: ffl A randomized, worst-case-CLC heuristic (R2P) whose expected search time is within a constant factor of the search time using an optimal tree; that is, it is statically competitive ffl A randomized, expecte...
Design and Analysis of Data Structures for Dynamic Trees
, 2006
"... The dynamic trees problem is that of maintaining a forest that changes over time through edge insertions and deletions. We can associate data with vertices or edges and manip-ulate this data, individually or in bulk, with operations that deal with whole paths or trees. Efficient solutions to this pr ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
The dynamic trees problem is that of maintaining a forest that changes over time through edge insertions and deletions. We can associate data with vertices or edges and manip-ulate this data, individually or in bulk, with operations that deal with whole paths or trees. Efficient solutions to this problem have numerous applications, particularly in algo-rithms for network flows and dynamic graphs in general. Several data structures capable of logarithmic-time dynamic tree operations have been proposed. The first was Sleator and Tarjan’s ST-tree, which represents a partition of the tree into paths. Although reasonably fast in practice, adapting ST-trees to different applications is nontrivial. Frederickson’s topology trees, Alstrup et al.’s top trees, and Acar et al.’s RC-trees are based on tree contractions: they progressively combine vertices or edges to obtain a hierarchical represen-tation of the tree. This approach is more flexible in theory, but all known implementations assume the trees have bounded degree; arbitrary trees are supported only after ternar-ization. This thesis shows how these two approaches can be combined (with very little overhead) to produce a data structure that is at least as generic as any other, very easy to
Kinetic and Dynamic Data Structures for Closest Pairs and All Nearest Neighbors
, 2008
"... We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic two-dimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or del ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic two-dimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or deletions take place, the structure for the closest pair uses O(n log n) space, and processes O(n 2 βs+2(n) log n) critical events, each in O(log 2 n) time. Here s is the maximum number of times where the distances between any two specific pairs of points can become equal, βs(q) = λs(q)/q, and λs(q) is the maximum length of Davenport-Schinzel sequences of order s on q symbols. The dynamic version of the problem incurs a slight degradation in performance: If m ≥ n insertions and deletions are performed, the structure still uses O(n log n) space, and processes O(mnβs+2(n) log³ n) events, each in O(log³ n) time. Our kinetic data structure for all nearest neighbors uses O(n log² n) space, and processes O(n 2 β 2 s+2 (n) log3 n) critical events. The expected time to process all events is O(n 2 β 2 s+2 (n) log4 n), though processing a single event may take �(n) expected time in the worst case. If m ≥ n insertions and deletions are performed, then the expected number of events is O(mnβ 2 s+2 (n) log3 n) and processing them all takes O(mnβ 2 s+2 (n) log4 n). An insertion or deletion takes O(n) expected time.
Data structures for range median queries
- In Proceedings of the 20th International Symposium on Algorithms and Computation
, 2009
"... Abstract. In this paper we design data structures supporting range median queries, i.e. report the median element in a sub-range of an array. We consider static and dynamic data structures and batched queries. Our data structures support range selection queries, which are more general, and dominance ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Abstract. In this paper we design data structures supporting range median queries, i.e. report the median element in a sub-range of an array. We consider static and dynamic data structures and batched queries. Our data structures support range selection queries, which are more general, and dominance queries (range rank). In the static case our data structure uses linear space and queries are supported in O(log n / log log n) time. Our dynamic data structure uses O(n log n / log log n) space and supports queries and updates in O((log n / log log n) 2) time. 1

