[英]Does Dijkstra's algorithm with a priority queue handle destination not found?
我知道算法的工作原理-但当使用优先级队列尝试查找无法找到的目标节点时,它似乎会不断循环跳动。
Dijkstra的算法是否可以处理节点与图断开连接的情况?
在每次迭代中,从优先级队列中仅提取一个节点,并且永远不会再添加该节点。 因此,优先级队列最终将变为空,并且算法将在发生这种情况时停止。 如果没有到目标节点的路径,则不可达节点的前任指针将设置为nil(这是其初始值)。
通常以以下两种方式之一制定算法:
长话短说,由于Dijkstra是BFS(逐级遍历)+ Greedy(放松从上一水平到当前水平的距离),所以它不会无休止地循环,并且不会遍历回到上一level
。 当队列为空时,该算法将结束。
如果找不到目标,则算法应返回-1或null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.