又看了一遍dijkstra算法

又看了一遍dijkstra算法

  • 主要是bfs的思想,从起点一步一步扩展到终点

  • 将图分为已到达和未到达

  • 主要根据是图中不存在负权边,所以在已到达部分的边缘,下次将会触及的那一圈邻居,其中有一个距离起点最短的点,那这个点的最短路径一定是当前路径。

  • 这是为什么呢

  • 因为已到达的点,他们已经将他们的邻居遍历过并且加入到队列中了,所以在优先队列首部的那一个点一定是直接距离已到达部分(也就是起点)最近的点,因为不存在负权边,间接走到一定比直接走到要远

  • 而每次入队列的时候入的都是总路程,所以容易得到只要走到终点,就能确定当前路径是起点到终点的最短路径。

posted @ 2020-09-11 09:22  AGkd  阅读(115)  评论(0编辑  收藏  举报