無向加重スパースグラフのすべてのペアの最短パス長を見つけるための最良のアルゴリズムは何ですか? 具体的には、重みはノード間の距離です (したがって、正の値になります)。パスの長さだけが必要であることに注意してください (つまり、パス自体ではありません)。私のグラフはまばらなので、隣接リストとして保存されます。
Dijkstra、Floyd-Warshall、Johnson などを見つけましたが、いずれも私の目的に最適ではないようです。Dijkstra の場合、すべての頂点に対して単一ソース バージョンを実行します。Floyd-Warshall は高密度グラフ用で、Johnson は有向グラフ用です。
特に C++ での実装を探しています。