Results 1 - 10
of
28
Randomized Search Trees
- ALGORITHMICA
, 1996
"... We present a randomized strategy for maintaining balance in dynamically changing search trees that has optimal expected behavior. In particular, in the expected case a search or an update takes logarithmic time, with the update requiring fewer than two rotations. Moreover, the update time remains ..."
Abstract
-
Cited by 126 (1 self)
- Add to MetaCart
We present a randomized strategy for maintaining balance in dynamically changing search trees that has optimal expected behavior. In particular, in the expected case a search or an update takes logarithmic time, with the update requiring fewer than two rotations. Moreover, the update time remains logarithmic, even if the cost of a rotation is taken to be proportional to the size of the rotated subtree. Finger searches and splits and joins can be performed in optimal expected time also. We show that these results continue to hold even if very little true randomness is available, i.e. if only a logarithmic number of truely random bits are available. Our approach generalizes naturally to weighted trees, where the expected time bounds for accesses and updates again match the worst case time bounds of the best deterministic methods. We also discuss ways of implementing our randomized strategy so that no explicit balance information is maintained. Our balancing strategy and our alg...
External Memory Data Structures
, 2001
"... In many massive dataset applications the data must be stored in space and query efficient data structures on external storage devices. Often the data needs to be changed dynamically. In this chapter we discuss recent advances in the development of provably worst-case efficient external memory dynami ..."
Abstract
-
Cited by 78 (34 self)
- Add to MetaCart
In many massive dataset applications the data must be stored in space and query efficient data structures on external storage devices. Often the data needs to be changed dynamically. In this chapter we discuss recent advances in the development of provably worst-case efficient external memory dynamic data structures. We also briefly discuss some of the most popular external data structures used in practice.
External-Memory Algorithms for Processing Line Segments in Geographic Information Systems
, 2007
"... In the design of algorithms for large-scale applications it is essential to consider the problem of minimizing I/O communication. Geographical information systems (GIS) are good examples of such large-scale applications as they frequently handle huge amounts of spatial data. In this paper we develop ..."
Abstract
-
Cited by 74 (29 self)
- Add to MetaCart
In the design of algorithms for large-scale applications it is essential to consider the problem of minimizing I/O communication. Geographical information systems (GIS) are good examples of such large-scale applications as they frequently handle huge amounts of spatial data. In this paper we develop efficient external-memory algorithms for a number of important problems involving line segments in the plane, including trapezoid decomposition, batched planar point location, triangulation, red–blue line segment intersection reporting, and general line segment intersection reporting. In GIS systems the first three problems are useful for rendering and modeling, and the latter two are frequently used for overlaying maps and extracting information from them.
Dynamic Trees and Dynamic Point Location
- In Proc. 23rd Annu. ACM Sympos. Theory Comput
, 1991
"... This paper describes new methods for maintaining a point-location data structure for a dynamically-changing monotone subdivision S. The main approach is based on the maintenance of two interlaced spanning trees, one for S and one for the graphtheoretic planar dual of S. Queries are answered by using ..."
Abstract
-
Cited by 46 (10 self)
- Add to MetaCart
This paper describes new methods for maintaining a point-location data structure for a dynamically-changing monotone subdivision S. The main approach is based on the maintenance of two interlaced spanning trees, one for S and one for the graphtheoretic planar dual of S. Queries are answered by using a centroid decomposition of the dual tree to drive searches in the primal tree. These trees are maintained via the link-cut trees structure of Sleator and Tarjan, leading to a scheme that achieves vertex insertion/deletion in O(log n) time, insertion/deletion of k-edge monotone chains in O(log n + k) time, and answers queries in O(log 2 n) time, with O(n) space, where n is the current size of subdivision S. The techniques described also allow for the dual operations expand and contract to be implemented in O(log n) time, leading to an improved method for spatial point-location in a 3-dimensional convex subdivision. In addition, the interlaced-tree approach is applied to on-line point-lo...
Efficient External-Memory Data Structures and Applications
, 1996
"... In this thesis we study the Input/Output (I/O) complexity of large-scale problems arising e.g. in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, and design I/O-efficient algorithms for them. A general theme in our work is to design I/O-effic ..."
Abstract
-
Cited by 38 (12 self)
- Add to MetaCart
In this thesis we study the Input/Output (I/O) complexity of large-scale problems arising e.g. in the areas of database systems, geographic information systems, VLSI design systems and computer graphics, and design I/O-efficient algorithms for them. A general theme in our work is to design I/O-efficient algorithms through the design of I/O-efficient 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 (one-dimensional) range-tree and the segment-tree 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
I/O-Efficient Dynamic Planar Point Location
"... We present the first provably I/O-efficient dynamic data structure for point location in a general planar subdivision. Our structure uses O(N/B) disk blocks to store a subdivision of size N , where B is the disk block size. Queries can be answered in ... I/Os in the worst-case, and insertions and de ..."
Abstract
-
Cited by 29 (17 self)
- Add to MetaCart
We present the first provably I/O-efficient dynamic data structure for point location in a general planar subdivision. Our structure uses O(N/B) disk blocks to store a subdivision of size N , where B is the disk block size. Queries can be answered in ... I/Os in the worst-case, and insertions and deletions can be performed in ... and ... I/Os amortized, respectively. Previously, an I/O-efficient dynamic point location structure was only known for monotone subdivisions. Part of our data structure...
A unified approach to dynamic point location, ray shooting, and shortest paths in planar maps
- SIAM Journal on Computing
, 1996
"... Abstract. We describe a new technique for dynamically maintaining the trapezoidal decomposition of a connected planar map dX/ [ with n vertices and apply it to the development of a unified dynamic data structure that supports pointlocation, ray-shooting, and shortest-path queries in A4. The space re ..."
Abstract
-
Cited by 24 (8 self)
- Add to MetaCart
Abstract. We describe a new technique for dynamically maintaining the trapezoidal decomposition of a connected planar map dX/ [ with n vertices and apply it to the development of a unified dynamic data structure that supports pointlocation, ray-shooting, and shortest-path queries in A4. The space requirement is O(n log n). Point-location queries take time O(log n). Ray-shooting and shortest-path queries take time O(log n) (plus O(k) time if the k edges of the shortest path are reported in addition to its length). Updates consist of insertions and deletions of vertices and edges, and take O(log n) time (amortized for vertex updates). This is the first polylog-time dynamic data structure for shortest-path and ray-shooting queries. It is also the first dynamic point-location data structure for connected planar maps that achieves optimal query time. Key words, point location, ray shooting, shortest path, computational geometry, dynamic algorithm
Touring a Sequence of Polygons
- In Proc. 35th Annu. ACM Sympos. Theory Comput
, 2003
"... Given a sequence of k polygons in the plane, a start point s, and a target point, t, we seek a shortest path that starts at s, visits in order each of the polygons, and ends at t. If the polygons are disjoint and convex, we give an algorithm running in time O(kn log(n/k)), where n is the total numbe ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
Given a sequence of k polygons in the plane, a start point s, and a target point, t, we seek a shortest path that starts at s, visits in order each of the polygons, and ends at t. If the polygons are disjoint and convex, we give an algorithm running in time O(kn log(n/k)), where n is the total number of vertices specifying the polygons. We also extend our results to a case in which the convex polygons are arbitrarily intersecting and the subpath between any two consecutive polygons is constrained to lie within a simply connected region; the algorithm uses O(nk log n) time. Our methods are simple and allow shortest path queries from s to a query point t to be answered in time O(k log n + m), where m is the combinatorial path length. We show that for nonconvex polygons this "touring polygons" problem is NP-hard.
Methods for Achieving Fast Query Times in Point Location Data Structures
, 1997
"... Given a collection S of n line segments in the plane, the planar point location problem is to construct a data structure that can efficiently determine for a given query point p the first segment(s) in S intersected by vertical rays emanating out from p. It is well known that linear-space data struc ..."
Abstract
-
Cited by 19 (1 self)
- Add to MetaCart
Given a collection S of n line segments in the plane, the planar point location problem is to construct a data structure that can efficiently determine for a given query point p the first segment(s) in S intersected by vertical rays emanating out from p. It is well known that linear-space data structures can be constructed so as to achieve O(log n) query times. But applications, such as those common in geographic information systems, motivate a re-examination of this problem with the goal of improving query times further while also simplifying the methods needed to achieve such query times. In this paper we perform such a re-examination, focusing on the issues that arise in three different classes of pointlocation query sequences: ffl sequences that are reasonably uniform spatially and temporally (in which case the constant factors in the query times become critical), ffl sequences that are non-uniform spatially or temporally (in which case one desires data structures that adapt to s...
I/O-Efficient Dynamic Point Location in Monotone Planar Subdivisions (Extended Abstract)
"... We present an efficient external-memory dynamic data structure for point location in monotone planar subdivisions. Our data structure uses O(N=B) disk blocks to store a monotone subdivision of size N, where B is the size of a disk block. It supports queries in O(log2B N) I/Os (worst-case) and upda ..."
Abstract
-
Cited by 18 (15 self)
- Add to MetaCart
We present an efficient external-memory dynamic data structure for point location in monotone planar subdivisions. Our data structure uses O(N=B) disk blocks to store a monotone subdivision of size N, where B is the size of a disk block. It supports queries in O(log2B N) I/Os (worst-case) and updates in O(log2B N) I/Os (amortized). We also

