Orderly spanning trees with applications to graph encoding and graph drawing
SODA '01 Proceedings of the twelfth annual ACM-SIAM symposium on Discrete algorithms
Single-source shortest-paths on arbitrary directed graphs in linear average-case time
SODA '01 Proceedings of the twelfth annual ACM-SIAM symposium on Discrete algorithms
Optimal time-space trade-offs for non-comparison-based sorting
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
SWAT '02 Proceedings of the 8th Scandinavian Workshop on Algorithm Theory
Quick k-Median, k-Center, and Facility Location for Sparse Graphs
ICALP '01 Proceedings of the 28th International Colloquium on Automata, Languages and Programming,
Shortest Path Algorithms: Engineering Aspects
ISAAC '01 Proceedings of the 12th International Symposium on Algorithms and Computation
A Simple Shortest Path Algorithm with Linear Average Time
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
Exact and Approximate Distances in Graphs - A Survey
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
Proceedings of the thirty-fifth annual ACM symposium on Theory of computing
Meldable RAM priority queues and minimum directed spanning trees
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Average-case complexity of single-source shortest-paths algorithms: lower and upper bounds
Journal of Algorithms - Special issue: Twelfth annual ACM-SIAM symposium on discrete algorithms
Journal of Computer and System Sciences - Special issue: STOC 2003
Compact oracles for reachability and approximate distances in planar digraphs
Journal of the ACM (JACM)
Design of data structures for mergeable trees
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
A double scaling algorithm for the constrained maximum flow problem
Computers and Operations Research
Equivalence between priority queues and sorting
Journal of the ACM (JACM)
Weighted fusion graphs: Merging properties and watersheds
Discrete Applied Mathematics
Approximate shortest path queries using Voronoi duals
Transactions on computational science IX
Approximate shortest path queries using Voronoi duals
Transactions on computational science IX
A faster polynomial algorithm for the constrained maximum flow problem
Computers and Operations Research
QoS-aware automatic service composition: a graph view
Journal of Computer Science and Technology - Special issue on Community Analysis and Information Recommendation
Hi-index | 0.00 |
Priority queues are some of the most fundamental data structures. For example, they are used directly for task scheduling in operating systems. Moreover, they are essential to greedy algorithms. We study the complexity of integer priority queue operations on a RAM with arbitrary word size, modeling the possibilities in standard imperative programming languages such as C. We present exponential improvements over previous bounds, and we show tight relations to sorting.Our first result is a RAM priority queue supporting find-min in constant time and insert and delete-min in time O(log log n), where n is the current number of keys in the queue. This is an exponential improvement over the $O(\sqrt{\log n})$ bound of Fredman and Willard [ Proceedings of the 22nd ACM Symposium on the Theory of Computing, Baltimore, MD, pp. 1--7]. Plugging this priority queue into Dijkstra's algorithm gives an O(mlog log m) algorithm for the single source shortest path problem on a graph with m edges, as compared with the previous $O(m\sqrt{\log m})$ bound based on Fredman and Willard's priority queue. The above bounds assume $O(n 2^{{\varepsilon} w})$ space, where w is the word length and ${\varepsilon}0$. They can, however, be achieved in linear space using randomized hashing.Our second result is a general equivalence between sorting and priority queues. A priority queue is monotone if the minimum is nondecreasing over time, as in many greedy algorithms. We show that on a RAM, the amortized operation cost of a monotone priority queue is equivalent to the per-key cost of sorting. For example, the equivalence implies that the single source shortest paths problem on a graph with m edges is no harder than that of sorting m keys. With the current RAM sorting, this gives an O(m log log m) time bound, as above, but the relation holds regardless of the future developments in RAM sorting.From the equivalence result, for any fixed ${\varepsilon}0$, we derive a randomized monotone $O(\sqrt{\log n}^{1+{\varepsilon}})$ priority queue with expected constant time decrease-key. Plugging this into Dijkstra's algorithm gives an $O(n\sqrt{\log n}^{1+{\varepsilon}}+m)$ algorithm for the single source shortest path problem on a graph with n nodes and m edges, complementing the above O(mlog log m) algorithm if $m\gg n$. This improves the O(nlog n/log log n + m) bound by Fredman and Willard [Proceedings of the 31st IEEE Symposium on the Foundations of Computer Science, St. Louis, MO, 1990, pp. 719--725], based on their O(log n/log log n) priority queue with constant decrease-key.