最佳答案
Dijkstra 的算法是这样教给我的
while pqueue is not empty:
distance, node = pqueue.delete_min()
if node has been visited:
continue
else:
mark node as visited
if node == target:
break
for each neighbor of node:
pqueue.insert(distance + distance_to_neighbor, neighbor)
但是我已经做了一些关于算法的阅读,我看到的许多版本使用了递减键,而不是插入。
为什么会这样,这两种方法的区别是什么?