zoukankan      html  css  js  c++  java
  • Dijkstra算法求单源最短路径(一)

          本文实现的Dijkstra算法是最简单的方法,就是暴力搜索,其时间复杂度为O(V^2),后面会使用优先队列的方法,修改广度优先遍历来实现Dijkstra算法,这样的算法时间复杂度上会有所改善。

    代码实例:

    PS:2011-6-15

    修改部分:

    输出了过程中dist[i]的变化

     

    Dijkstra算法求单源最短路径,其实相当于是从一个源点S出发,找出从S出发可达的所有其他点的最短路径。

    因此分以下几步完成:

    1.dist[i]用于标记从s到i的最短路径,初始化是只有dist[s]=0,其他dist[i]=maxWeitht,表示权值无穷大

    2.因为源点已经找到,还需要遍历剩余的V-1个点来找寻最短路径。

    3.从dist[i]中找寻i点没有被访问且dist最小的值作为下一个顶点minnode。

    4.如果dist[minnode]的值加上其可达顶点j的边上的值小于dist[j]的值,则更新dist[j],表明j的前序节点是minnode。

    作者:xwdreamer
    欢迎任何形式的转载,但请务必注明出处。
    分享到:
  • 相关阅读:
    面向对象之继承
    面向对象之封装
    面向对象编程
    Centos7.7镜像源配置
    Centos7环境配置
    多表查询v1
    多表查询
    库相关操作
    数据库初识
    数据相关操作
  • 原文地址:https://www.cnblogs.com/xwdreamer/p/2297004.html
Copyright © 2011-2022 走看看