Fast Algorithms for Shortest Paths and Sorting

A priority queue (pq) is said to be monotone if the value of the smallest element stored in the priority queue is a non-decreasing function of time. We consider the problem of maintaining a monotone priority queue on a set of integers in the range 0 : :2 w ? 1 on a unit-cost RAM with word size w bits. We give a monotone pq that, starting with an empty collection of items, processes a sequence of n insert and delete-mins and m decrease-keys in O(m + n p log n log log n) time. As a consequence, the single-source shortest paths problem on graphs with n nodes and m edges and integer edge costs in the range 0 : :2 w ?1 can be solved in O(m + n p log n log log n) time, and n integers each in the range 0 : :2 w ? 1 can be sorted in O(n p log n log log n) time. All the above results use only unit-time RAM instructions from the class ac 0 and require linear space.