scispace - formally typeset
Search or ask a question

Showing papers by "Gerth Stølting Brodal published in 2012"


Journal ArticleDOI
TL;DR: It is shown that every algorithm enabled to access A during the query and using a data structure of size O(N/c) bits requires Ω(c) query time, for any c where 1≤c≤N, and the lower bound holds for arrays of any dimension.
Abstract: The two dimensional range minimum query problem is to preprocess a static m by n matrix (two dimensional array) A of size N=m⋅n, such that subsequent queries, asking for the position of the minimum element in a rectangular range within A, can be answered efficiently. We study the trade-off between the space and query time of the problem. We show that every algorithm enabled to access A during the query and using a data structure of size O(N/c) bits requires Ω(c) query time, for any c where 1≤c≤N. This lower bound holds for arrays of any dimension. In particular, for the one dimensional version of the problem, the lower bound is tight up to a constant factor. In two dimensions, we complement the lower bound with an indexing data structure of size O(N/c) bits which can be preprocessed in O(N) time to support O(clog 2 c) query time. For c=O(1), this is the first O(1) query time algorithm using a data structure of optimal size O(N) bits. For the case where queries can not probe A, we give a data structure of size O(N⋅min {m,log n}) bits with O(1) query time, assuming m≤n. This leaves a gap to the space lower bound of Ω(Nlog m) bits for this version of the problem.

55 citations


Proceedings ArticleDOI
19 May 2012
TL;DR: This work presents the first pointer-based heap implementation with time bounds matching those of Fibonacci heaps in the worst case, and uses the pigeonhole principle in place of the redundant counter mechanism.
Abstract: We present the first pointer-based heap implementation with time bounds matching those of Fibonacci heaps in the worst case. We support make-heap, insert, find-min, meld and decrease-key in worst-case O(1) time, and delete and delete-min in worst-case O(lg n) time, where n is the size of the heap. The data structure uses linear space. A previous, very complicated, solution achieving the same time bounds in the RAM model made essential use of arrays and extensive use of redundant counter schemes to maintain balance. Our solution uses neither. Our key simplification is to discard the structure of the smaller heap when doing a meld. We use the pigeonhole principle in place of the redundant counter mechanism.

51 citations


Proceedings ArticleDOI
17 Jan 2012
TL;DR: An I/O-efficient method for full persistence that is inspired by the node-splitting method of Driscoll et al is presented, which can be applied to any external memory pointer based data structure with maximum in-degree din bounded by a constant and out-degree bounded by O(B).
Abstract: We present I/O-efficient fully persistent B-Trees that support range searches at any version in O(logBn + t/B) I/Os and updates at any version in O(logBn + log2B) amortized I/Os, using space O(m/B) disk blocks. By n we denote the number of elements in the accessed version, by m the total number of updates, by t the size of the query's output, and by B the disk block size. The result improves the previous fully persistent B-Trees of Lanka and Mays by a factor of O(logBm) for the range query complexity and O(logBn) for the update complexity. To achieve the result, we first present a new B-Tree implementation that supports searches and updates in O(logBn) I/Os, using O(n/B) blocks of space. Moreover, every update makes in the worst case a constant number of modifications to the data structure. We make these B-Trees fully persistent using an I/O-efficient method for full persistence that is inspired by the node-splitting method of Driscoll et al. The method we present is interesting in its own right and can be applied to any external memory pointer based data structure with maximum in-degree din bounded by a constant and out-degree bounded by O(B), where every node occupies a constant number of blocks on disk. The I/O-overhead per modification to the ephemeral structure is O(din log2B) amortized I/Os, and the space overhead is O(din/B) amortized blocks. Access to a field of an ephemeral block is supported in O(log2din) worst case I/Os.

22 citations


Book ChapterDOI
10 Sep 2012
TL;DR: Using a novel technique--the discrepancy properties of Fibonacci lattices--an indexing data structure for 2D-RMQs is given that uses O(N/c) bits additional space with O(clogc(loglogc)2) query time, for any parameter c, 4≤c≤N.
Abstract: Given a matrix of size N, two dimensional range minimum queries (2D-RMQs) ask for the position of the minimum element in a rectangular range within the matrix. We study trade-offs between the query time and the additional space used by indexing data structures that support 2D-RMQs. Using a novel technique--the discrepancy properties of Fibonacci lattices--we give an indexing data structure for 2D-RMQs that uses O(N/c) bits additional space with O(clogc(loglogc)2) query time, for any parameter c, 4≤c≤N. Also, when the entries of the input matrix are from {0,1}, we show that the query time can be improved to O(clogc) with the same space usage.

18 citations


Journal ArticleDOI
TL;DR: This paper presents an I/O-efficient dynamic data structure for point location in general planar subdivisions that uses linear space to store a subdivision with N segments.
Abstract: Point location is an extremely well-studied problem both in internal memory models and recently also in the external memory model. In this paper, we present an I/O-efficient dynamic data structure for point location in general planar subdivisions. Our structure uses linear space to store a subdivision with N segments. Insertions and deletions of segments can be performed in amortized O(log B N) I/Os and queries can be answered in $O(\log_{B}^{2} N)$ I/Os in the worst-case. The previous best known linear space dynamic structure also answers queries in $O(\log_{B}^{2} N)$ I/Os, but only supports insertions in amortized $O(\log_{B}^{2} N)$ I/Os. Our structure is also considerably simpler than previous structures.

7 citations


Book ChapterDOI
19 Dec 2012
TL;DR: This work addresses the problem of creating a dictionary with the finger search property in the strict implicit model, where no information is stored between operations, except the array of elements, and presents an optimal implicit static structure matching this lower bound.
Abstract: We address the problem of creating a dictionary with the finger search property in the strict implicit model, where no information is stored between operations, except the array of elements. We show that for any implicit dictionary supporting finger searches in q(t) = Ω(logt) time, the time to move the finger to another element is Ω(q − 1(logn)), where t is the rank distance between the query element and the finger. We present an optimal implicit static structure matching this lower bound. We furthermore present a near optimal implicit dynamic structure supporting search, change-finger, insert, and delete in times \(\mathcal{O}(q(t))\), \(\mathcal{O}(q^{-1}(\log n)\log n)\), \(\mathcal{O}(\log n)\), and \(\mathcal{O}(\log n)\), respectively, for any q(t) = Ω(logt). Finally we show that the search operation must take Ω(logn) time for the special case where the finger is always changed to the element returned by the last query.

5 citations


Posted Content
TL;DR: This work shows that the update and query complexities can be improved to expected doubly-logarithmic, when the input coordinates are being continuously drawn from specific probability distributions.
Abstract: This work studies the problem of 2-dimensional searching for the 3-sided range query of the form $[a, b]\times (-\infty, c]$ in both main and external memory, by considering a variety of input distributions. We present three sets of solutions each of which examines the 3-sided problem in both RAM and I/O model respectively. The presented data structures are deterministic and the expectation is with respect to the input distribution.

3 citations


Proceedings ArticleDOI
01 Jan 2012
TL;DR: In this article, an implicit dynamic dictionary with the working-set property, supporting insert and delete in O(logn) time and O(log min(p(e), s(e)) time, respectively, was presented.
Abstract: In this paper we present an implicit dynamic dictionary with the working-set property, supporting insert(e) and delete(e) in O(logn) time, predecessor(e) in O(log‘p(e)) time, successor(e) in O(log‘s(e)) time and search(e) inO(log min(‘p(e),‘e,‘s(e))) time, where n is the number of elements stored in the dictionary, ‘e is the number of distinct elements searched for since element e was last searched for and p(e) and s(e) are the predecessor and successor of e, respectively. The time-bounds are all worst-case. The dictionary stores the elements in an array of size n using no additional space. In the cache-oblivious model the log is base B and the cache-obliviousness is due to our black box use of an existing cache-oblivious implicit dictionary. This is the first implicit dictionary supporting predecessor and successor searches in the working-set bound. Previous implicit structures requiredO(logn) time. 1998 ACM Subject Classification Algorithms and data structures, E.1 Data Structures