hide
Free keywords:
-
Abstract:
We describe the implementation of a data structure called radix heap,
which is a priority queue with restricted functionality.
Its restrictions are observed by Dijkstra's algorithm, which uses
priority queues to solve the single source shortest path problem
in graphs with nonnegative edge costs.
For a graph with $n$ nodes and $m$ edges and real-valued edge costs,
the best known theoretical bound for the algorithm is $O(m+n\log n)$.
This bound is attained by using Fibonacci heaps to implement
priority queues.
If the edge costs are integers in the range $[0\ldots C]$, then using
our implementation of radix heaps for Dijkstra's algorithm
leads to a running time of $O(m+n\log C)$.
We compare our implementation of radix heaps with an existing implementation
of Fibonacci heaps in the framework of Dijkstra's algorithm. Our
experiments exhibit a tangible advantage for radix heaps over Fibonacci heaps
and confirm the positive influence of small edge costs on the running time.