这是一个更普遍的问题。我有一张将城市名称映射到其节点的地图(包含国家、纬度、经度等基本信息)。每个城市节点都有一个指向目标节点的边数组。边缘具有时间和成本成员。我想找到在两个节点之间旅行的最短时间,但我已经开始对解决这个问题的最佳方式感到困惑。
我创建了自己的基于城市节点向量的最小堆类。我能够创建地图,将地图中的城市节点添加到最小堆。我已经编写了 dijkstra 的算法来找到最短路径,它适用于某些路径,但不是全部。我相信这是因为当我为 dijkstra 算法更新城市节点的权重时,堆没有正确排序。
一旦我更新了节点的权重,我应该如何重新堆化堆以使最低权重位于顶部?
谢谢!