Dijkstra算法(迪杰斯特拉算法)

目的

找出图中所有结点与某一结点最短路径

步骤

——前提条件:“图”结构已经建好,将所有结点与初始结点距离存入数组a备用

  1. 找到初始顶点
  2. 找到一个与初始顶点距离最小的顶点V(通过数组a判断)
  3. 找到V顶点后,遍历V周围顶点
  4. 更新V周围顶点与初始顶点之间的距离
    若:初始顶点V顶点的距离 + V顶点某个V周围顶点距离 < 原本存的此周围顶点初始顶点的距离
    则:更新那个周围顶点初始顶点的距离。
  5. 重复第三步!

实现

步骤 内容 如何实现
1 找到初始顶点 将初始顶点的前驱赋值为自己
2 遍历顶点,找到一个与初始结点距离最小的顶点V 1.用循环,循环所有顶点,最后得输出距离最小顶点
3 找到V顶点后,遍历V周围顶点,更新V周围顶点与初始顶点之间的距离 1.用循环,循环所有顶点
2.每次循环都对距离数组a更新一次
4 回到第三步 这是一个大循环(也是主循环),循环除了初始顶点之外的顶点

你可能感兴趣的:(Dijkstra算法(迪杰斯特拉算法))