scispace - formally typeset
Search or ask a question

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


Book ChapterDOI
05 Dec 2009
TL;DR: A data structure in the RAM model is presented supporting queries that given two indices i ≤ j and an integer k report the k smallest elements in the subarray A[i..j] in sorted order in optimal O(k) time.
Abstract: We study the following one-dimensional range reporting problem: On an array A of n elements, support queries that given two indices i ≤ j and an integer k report the k smallest elements in the subarray A[i..j] in sorted order. We present a data structure in the RAM model supporting such queries in optimal O(k) time. The structure uses O(n) words of space and can be constructed in O(n logn) time. The data structure can be extended to solve the online version of the problem, where the elements in A[i..j] are reported one-by-one in sorted order, in O(1) worst-case time per element. The problem is motivated by (and is a generalization of) a problem with applications in search engines: On a tree where leaves have associated rank values, report the highest ranked leaves in a given subtree. Finally, the problem studied generalizes the classic range minimum query (RMQ) problem on arrays.

54 citations


Book ChapterDOI
05 Dec 2009
TL;DR: This paper designs data structures supporting range median queries, i.e. report the median element in a sub-range of an array, and considers static and dynamic data structures and batched queries.
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(logn/loglogn) time. Our dynamic data structure uses O(nlogn/loglogn) space and supports queries and updates in O((logn/loglogn)2) time.

40 citations


Book ChapterDOI
24 Jul 2009
TL;DR: This paper investigates for the first time the connection between I/O-efficiency in the I/ O model and fault tolerance in the faulty memory RAM, and shows a lower bound on the number of I/Os required for any deterministic dictionary that is resilient to memory faults.
Abstract: Algorithms dealing with massive data sets are usually designed for I/O-efficiency, often captured by the I/O model by Aggarwal and Vitter. Another aspect of dealing with massive data is how to deal with memory faults, e.g. captured by the adversary based faulty memory RAM by Finocchi and Italiano. However, current fault tolerant algorithms do not scale beyond the internal memory. In this paper we investigate for the first time the connection between I/O-efficiency in the I/O model and fault tolerance in the faulty memory RAM, and we assume that both memory and disk are unreliable. We show a lower bound on the number of I/Os required for any deterministic dictionary that is resilient to memory faults. We design a static and a dynamic deterministic dictionary with optimal query performance as well as an optimal sorting algorithm and an optimal priority queue. Finally, we consider scenarios where only cells in memory or only cells on disk are corruptible and separate randomized and deterministic dictionaries in the latter.

13 citations


Book ChapterDOI
05 Dec 2009
TL;DR: This paper decreases the expensive increment cost to o(?) and presents upper and lower bound tradeoffs decreasing the increment time at the cost of the accuracy of the counters.
Abstract: The faulty memory RAM presented by Finocchi and Italiano [1] is a variant of the RAM model where the content of any memory cell can get corrupted at any time, and corrupted cells cannot be distinguished from uncorrupted cells. An upper bound, ?, on the number of corruptions and O(1) reliable memory cells are provided. In this paper we investigate the fundamental problem of counting in faulty memory. Keeping many reliable counters in the faulty memory is easily done by replicating the value of each counter ?(?) times and paying ?(?) time every time a counter is queried or incremented. In this paper we decrease the expensive increment cost to o(?) and present upper and lower bound tradeoffs decreasing the increment time at the cost of the accuracy of the counters.

12 citations


Book ChapterDOI
05 Dec 2009
TL;DR: This work considers the problem of maintaining dynamically a set of points in the plane and supporting range queries of the type [a,b]×( ?
Abstract: We consider the problem of maintaining dynamically a set of points in the plane and supporting range queries of the type [a,b]×( ? ? , c]. We assume that the inserted points have their x-coordinates drawn from a class of smooth distributions, whereas the y-coordinates are arbitrarily distributed. The points to be deleted are selected uniformly at random among the inserted points. For the RAM model, we present a linear space data structure that supports queries in O(loglogn + t) expected time with high probability and updates in O(loglogn) expected amortized time, where n is the number of points stored and t is the size of the output of the query. For the I/O model we support queries in O(loglog B n + t/B) expected I/Os with high probability and updates in O(log B logn) expected amortized I/Os using linear space, where B is the disk block size. The data structures are deterministic and the expectation is with respect to the input distribution.

3 citations


01 Jan 2009
TL;DR: Heuristics for speeding up the neighbour-joining method which generate the same phylogenetic trees as the original method, showing that the presented heuristics can give a significant speed-up over the standard neighbour- joining method, already for medium sized instances.
Abstract: A widely used method for constructing phylogenetic trees is the neighbour-joining method of Saitou and Nei. We develope heuristics for speeding up the neighbour-joining method which generate the same phylogenetic trees as the original method. All heuristics are based on using a quad-tree to guide the search for the next pair of nodes to join, but differ in the information stored in quad-tree nodes, the way the search is performed, and in the way the quad-tree is updated after a join. We empirically evaluate the performance of the heuristics on distance matrices obtained from the Pfam collection of alignments, and compare the running time with that of the QuickTree tool, a well-known and widely used implementation of the standard neighbour-joining method. The results show that the presented heuristics can give a significant speed-up over the standard neighbour-joining method, already for medium sized instances.

1 citations