Fast algorithms for finding nearest common ancestors
SIAM Journal on Computing
The input/output complexity of sorting and related problems
Communications of the ACM
On finding lowest common ancestors: simplification and parallelization
SIAM Journal on Computing
Reporting points in halfspaces
Computational Geometry: Theory and Applications
An optimal algorithm for selection in a min-heap
Information and Computation
On two-dimensional indexability and optimal range search indexing
PODS '99 Proceedings of the eighteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Introduction to Algorithms
LATIN '00 Proceedings of the 4th Latin American Symposium on Theoretical Informatics
I/O-efficient point location using persistent B-trees
Journal of Experimental Algorithmics (JEA)
Cache-oblivious planar orthogonal range searching and counting
SCG '05 Proceedings of the twenty-first annual symposium on Computational geometry
External-memory computational geometry
SFCS '93 Proceedings of the 1993 IEEE 34th Annual Foundations of Computer Science
ISAAC '09 Proceedings of the 20th International Symposium on Algorithms and Computation
Beyond simple aggregates: indexing for summary queries
Proceedings of the thirtieth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Dynamic top-k range reporting in external memory
PODS '12 Proceedings of the 31st symposium on Principles of Database Systems
Lower bounds for sorted geometric queries in the I/O model
ESA'12 Proceedings of the 20th Annual European conference on Algorithms
Indexing for summary queries: Theory and practice
ACM Transactions on Database Systems (TODS)
Colored top-K range-aggregate queries
Information Processing Letters
Hi-index | 0.00 |
We study the following problem: Given an array A storing N real numbers, preprocess it to allow fast reporting of the K smallest elements in the subarray A[i, j] in sorted order, for any triple (i, j, K) with 1 ≤ i ≤ j ≤ N and 1 ≤ K ≤ j − i + 1. We are interested in scenarios where the array A is large, necessitating an I/O-efficient solution. For a parameter f with 1 ≤ f ≤ logm n, we construct a data structure that uses O((N/f) logm n) space and achieves a query bound of O(logB N + fK/B) I/Os, where B is the block size, M is the size of the main memory, n:= N/B, and m:= M/B. Our main contribution is to show that this solution is nearly optimal. To be precise, we show that achieving a query bound of O(logα n + fK/B) I/Os, for any constant α, requires Ω(Nf−1 logM n/log(f−1 logM n)) space, assuming B = Ω(log N). For M ≥ B1+ε, this is within a log logm n factor of the upper bound. The lower bound assumes indivisibility of records and holds even if we assume K is always set to j − 1 + 1. We also show that it is the requirement that the K smallest elements be reported in sorted order which makes the problem hard. If the K smallest elements in the query range can be reported in any order, then we can obtain a linear-size data structure with a query bound of O(logB N + K/B) I/Os.