これはより一般的な質問です。都市の名前をそのノード (国、緯度、経度などの基本情報を含む) にマップするマップがあります。各都市ノードには、宛先ノードを指すエッジの配列があります。エッジには時間メンバーとコスト メンバーがあります。2 つのノード間を移動する最短時間を見つけたいのですが、これを行う最善の方法について混乱し始めています。
都市ノードのベクトルに基づく独自の最小ヒープ クラスを作成しました。マップを作成して、マップから最小ヒープに都市ノードを追加できます。最短パスを見つけるためにダイクストラのアルゴリズムを作成しましたが、一部のパスでは機能しますが、すべてでは機能しません。これは、ダイクストラのアルゴリズムの都市ノードの重みを更新すると、ヒープが正しくソートされていないためだと思います。
ノードの重みを更新したら、最小の重みが一番上になるようにヒープを再ヒープするにはどうすればよいですか?
ありがとうございました!