私はDijkstraのアルゴリズムを実装しようとしていますが、基本的なレベルでそれを行う方法をかなり理解していますが、私を混乱させるものはINT_MAXです。ここで私は、次のよアルゴリズムです:あなたが最短経路を見つけようとしている場合ダイクストラのアルゴリズムでINT_MAXとは何ですか?
Dijkstra(start, end)
startV = search(start)
endV = search(end)
startV.solved = true
startV.distance = 0
solved = {startV} //list of solved vertices
while (!endV.solved)
minDistance = INT_MAX
solvedV = NULL
for s in solved
for y in s.adjacent
if(!y.solved)
dist = s.distance + y.distance
if(dist < minDistance)
solvedV = y
minDistance = dist
parent = s
solvedV.distance = minDistance
solvedV.parent = parent
solvedV.solved = true
solved.add(solvedV)
はなぜminDistanceと呼ばれるものは、INT_MAXと呼ばれるものを使用して計算するのでしょうか? INT_MAXはどうやって見つかりますか?それがまったく答えに影響するならば、私はC++を使っていますし、私の頂点は構造体です。しかし、それは宿題のためであり、答えのコードはありません。
「INT_MAX」は最大可能整数を意味します。 –
なぜそれがここで使用されているのかを知るには、このアルゴリズムを紙で(またはコード化されたバージョンを持っている場合はデバッガで)実行し、アルゴリズムが進行するにつれて 'minDistance'の値がどのようになるのかを見てください。 –
Googleに –