Results 1  10
of
29
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 139 (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 worstcase efficient external memory dynami ..."
Abstract

Cited by 81 (36 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 worstcase efficient external memory dynamic data structures. We also briefly discuss some of the most popular external data structures used in practice.
ExternalMemory Algorithms for Processing Line Segments in Geographic Information Systems
, 2007
"... In the design of algorithms for largescale applications it is essential to consider the problem of minimizing I/O communication. Geographical information systems (GIS) are good examples of such largescale applications as they frequently handle huge amounts of spatial data. In this paper we develop ..."
Abstract

Cited by 76 (30 self)
 Add to MetaCart
In the design of algorithms for largescale applications it is essential to consider the problem of minimizing I/O communication. Geographical information systems (GIS) are good examples of such largescale applications as they frequently handle huge amounts of spatial data. In this paper we develop efficient externalmemory 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 pointlocation data structure for a dynamicallychanging 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 (11 self)
 Add to MetaCart
This paper describes new methods for maintaining a pointlocation data structure for a dynamicallychanging 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 linkcut trees structure of Sleator and Tarjan, leading to a scheme that achieves vertex insertion/deletion in O(log n) time, insertion/deletion of kedge 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 pointlocation in a 3dimensional convex subdivision. In addition, the interlacedtree approach is applied to online pointlo...
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
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 31 (4 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 NPhard.
I/OEfficient Dynamic Planar Point Location
"... We present the first provably I/Oefficient 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 worstcase, and insertions and de ..."
Abstract

Cited by 29 (17 self)
 Add to MetaCart
We present the first provably I/Oefficient 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 worstcase, and insertions and deletions can be performed in ... and ... I/Os amortized, respectively. Previously, an I/Oefficient 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, rayshooting, and shortestpath 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, rayshooting, and shortestpath queries in A4. The space requirement is O(n log n). Pointlocation queries take time O(log n). Rayshooting and shortestpath 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 polylogtime dynamic data structure for shortestpath and rayshooting queries. It is also the first dynamic pointlocation data structure for connected planar maps that achieves optimal query time. Key words, point location, ray shooting, shortest path, computational geometry, dynamic algorithm
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 linearspace data struc ..."
Abstract

Cited by 20 (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 linearspace 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 reexamination 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 reexamination, 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 nonuniform spatially or temporally (in which case one desires data structures that adapt to s...
I/OEfficient Dynamic Point Location in Monotone Planar Subdivisions (Extended Abstract)
"... We present an efficient externalmemory 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 (worstcase) and upda ..."
Abstract

Cited by 20 (15 self)
 Add to MetaCart
We present an efficient externalmemory 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 (worstcase) and updates in O(log2B N) I/Os (amortized). We also