Results 1  10
of
11
Making Data Structures Persistent
, 1989
"... This paper is a study of persistence in data structures. Ordinary data structures are ephemeral in the sense that a change to the structure destroys the old version, leaving only the new version available for use. In contrast, a persistent structure allows access to any version, old or new, at any t ..."
Abstract

Cited by 250 (6 self)
 Add to MetaCart
This paper is a study of persistence in data structures. Ordinary data structures are ephemeral in the sense that a change to the structure destroys the old version, leaving only the new version available for use. In contrast, a persistent structure allows access to any version, old or new, at any time. We develop simple, systematic, and effiient techniques for making linked data structures persistent. We use our techniques to devise persistent forms of binary search trees with logarithmic access, insertion, and deletion times and O(1) space bounds for insertion and deletion.
Optimal Dynamic Interval Management in External Memory (Extended Abstract))
 IN PROC. IEEE SYMP. ON FOUNDATIONS OF COMP. SCI
, 1996
"... We present a space and I/Ooptimal externalmemory data structure for answering stabbing queries on a set of dynamically maintained intervals. Our data structure settles an open problem in databases and I/O algorithms by providing the first optimal externalmemory solution to the dynamic interval m ..."
Abstract

Cited by 85 (23 self)
 Add to MetaCart
We present a space and I/Ooptimal externalmemory data structure for answering stabbing queries on a set of dynamically maintained intervals. Our data structure settles an open problem in databases and I/O algorithms by providing the first optimal externalmemory solution to the dynamic interval management problem, which is a special case of 2dimensional range searching and a central problem for objectoriented and temporal databases and for constraint logic programming. Our data structure simultaneously uses optimal linear space (that is, O(N/B) blocks of disk space) and achieves the optimal O(log B N + T/B) I/O query bound and O(log B N ) I/O update bound, where B is the I/O block size and T the number of elements in the answer to a query. Our structure is also the first optimal external data structure for a 2dimensional range searching problem that has worstcase as opposed to amortized update bounds. Part of the data structure uses a novel balancing technique for efficient worstcase manipulation of balanced trees, which is of independent interest.
Efficient ExternalMemory Data Structures and Applications
, 1996
"... In this thesis we study the Input/Output (I/O) complexity of largescale problems arising e.g. in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, and design I/Oefficient algorithms for them. A general theme in our work is to design I/Oeffic ..."
Abstract

Cited by 38 (12 self)
 Add to MetaCart
In this thesis we study the Input/Output (I/O) complexity of largescale problems arising e.g. in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, and design I/Oefficient algorithms for them. A general theme in our work is to design I/Oefficient algorithms through the design of I/Oefficient data structures. One of our philosophies is to try to isolate all the I/O specific parts of an algorithm in the data structures, that is, to try to design I/O algorithms from internal memory algorithms by exchanging the data structures used in internal memory with their external memory counterparts. The results in the thesis include a technique for transforming an internal memory tree data structure into an external data structure which can be used in a batched dynamic setting, that is, a setting where we for example do not require that the result of a search operation is returned immediately. Using this technique we develop batched dynamic external versions of the (onedimensional) rangetree and the segmenttree and we develop an external priority queue. Following our general philosophy we show how these structures can be used in standard internal memory sorting algorithms
Optimal External Memory Interval Management
, 2002
"... In this paper we present the external interval tree, an optimal external memory data structure for answering stabbing queries on a set of dynamically maintained intervals. The external interval tree can be used in an optimal solution to the dynamic interval management problem, which is a central pro ..."
Abstract

Cited by 32 (6 self)
 Add to MetaCart
In this paper we present the external interval tree, an optimal external memory data structure for answering stabbing queries on a set of dynamically maintained intervals. The external interval tree can be used in an optimal solution to the dynamic interval management problem, which is a central problem for objectoriented and temporal databases and for constraint logic programming. Part of the structure uses a novel weightbalancing technique for efficient worstcase manipulation of balanced trees of independent interest. The external interval tree, as well at our new balancing technique, have recently been used to develop several efficient external data structures.
Discrete Loops and Worst Case Performance
 Computer Languages
, 1994
"... In this paper socalled discrete loops are introduced which narrow the gap between general loops (e.g. while or repeatloops) and forloops. 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 15 (7 self)
 Add to MetaCart
In this paper socalled discrete loops are introduced which narrow the gap between general loops (e.g. while or repeatloops) and forloops. 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 forloops and extremely difficult for general loops. Thus discrete loops form an ideal framework for determining the worst case timing behavior of a program and they are especially useful in implementing realtime systems and proving such systems correct.
WorstCase Space and Time Complexity of Recursive Procedures
"... The purpose of this paper is to show that recursive procedures can be used for implementing realtime 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 10 (4 self)
 Add to MetaCart
The purpose of this paper is to show that recursive procedures can be used for implementing realtime 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 treetraversal algorithms. In addition,
Biased Finger Trees and ThreeDimensional Layers of Maxima
, 1994
"... We present a method for maintaining biased search trees so as to support fast finger updates (i.e., updates in which one is given a pointer to the part of the tree being changed). We illustrate the power of such biased finger trees by showing how they can be used to derive an optimal O(n log n) algo ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
We present a method for maintaining biased search trees so as to support fast finger updates (i.e., updates in which one is given a pointer to the part of the tree being changed). We illustrate the power of such biased finger trees by showing how they can be used to derive an optimal O(n log n) algorithm for the 3dimensional layersofmaxima problem and also obtain an improved method for dynamic point location.
RankBalanced Trees
"... Abstract. Since the invention of AVL trees in 1962, a wide variety of ways to balance binary search trees have been proposed. Notable are redblack trees, in which bottomup rebalancing after an insertion or deletion takes O(1) amortized time and O(1) rotations worstcase. But the design space of ba ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Abstract. Since the invention of AVL trees in 1962, a wide variety of ways to balance binary search trees have been proposed. Notable are redblack trees, in which bottomup rebalancing after an insertion or deletion takes O(1) amortized time and O(1) rotations worstcase. But the design space of balanced trees has not been fully explored. We introduce the rankbalanced tree, a relaxation of AVL trees. Rankbalanced trees can be rebalanced bottomup after an insertion or deletion in O(1) amortized time and at most two rotations worstcase, in contrast to redblack trees, which need up to three rotations per deletion. Rebalancing can also be done topdown with fixed lookahead in O(1) amortized time. Using a novel analysis that relies on an exponential potential function, we show that both bottomup and topdown rebalancing modify nodes exponentially infrequently in their heights. 1
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 twodimensional 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 twodimensional 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 DavenportSchinzel 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.
Fast Delaunay point location with search structures
 Eleventh Canadian Conference on Computational Geometry
, 1999
"... We present an improvement over a former technique, Jump & Walk ([7]), to locate points in the Delaunay triangulation of n sites uniformly distributed in a square. The method uses a dynamically balanced search tree. It is also studied when applied to a static balanced 2d tree. This paper gives expec ..."
Abstract
 Add to MetaCart
We present an improvement over a former technique, Jump & Walk ([7]), to locate points in the Delaunay triangulation of n sites uniformly distributed in a square. The method uses a dynamically balanced search tree. It is also studied when applied to a static balanced 2d tree. This paper gives expected time analyses when the query points are bounded away from the boundary of the triangulation: the proof for the unrestricted case is much more complex, and will be presented in another paper (in preparation). Keywords: Delaunay triangulation, height and weightbalanced trees, 2d trees, worst and averagecase analysis, point location. 1 Introduction Let Sn = fs 1 ; s 2 ; : : : ; s n g be a set of n distinct points in the euclidean plane E 2 , called sites, and G a planar graph of size n, with vertex set Sn . The (planar) point location problem consists in identifying the face (edge or site in degenerate situations) of G containing a given query point q. This problem, first addressed...