Thorup's algorithm

suggest change

Thorup’s algorithm for single source shortest path for undirected graph has the time complexity O(m), lower than Dijkstra.

Basic ideas are the following. (Sorry, I didn’t try implementing it yet, so I might miss some minor details. And the original paper is paywalled so I tried to reconstruct it from other sources referencing it. Please remove this comment if you could verify.)

It is based on the fact that, there isn’t an edge with length less than l between two connected components of the spanning forest with length limitation l, so, starting at distance x, you could focus only on one connected component until you reach the distance x + l. You’ll visit some vertices before vertices with shorter distance are all visited, but that doesn’t matter because it is known there won’t be a shorter path to here from those vertices. Other parts work like the bucket sort / MSD radix sort, and of course, it requires the O(m) spanning tree.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents