zoukankan      html  css  js  c++  java
  • 最短路——Floyd算法

    在带权图中,求解的是最短的权重路径;在无权图中,将每一条边的权重,都看做单位权重,也就是每条边的权重是1


    Floyd-Warshall算法
    解决问题:所有节点对的最短路径问题
    解决方式:从图的邻接矩阵推导出最短路径矩阵
    算法思想:对于其中的一个结点k而言,对于任何一个起点i终点j而言,只有两种情况:经过k,不经过k

    复杂度:O(n^3)

    代码:

    void floyd(){
        for(int k=1;k<=n;k++){//以k为转移节点 
            for(int i=1;i<=n;i++){//i,j为起点终点 
                for(int j=1;j<=n;j++){
                    dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
                } 
            } 
        }
    }

    无权图的最短路:可以使用bfs


    作者:孙建钊
    出处:http://www.cnblogs.com/sunjianzhao/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    线性筛素数
    redis集成springmvc
    shiro登录权限认证
    jQuery插件
    maven多项目配置
    w
    触发器
    后悔了可以找我我们是朋友
    url upload data
    排队
  • 原文地址:https://www.cnblogs.com/sunjianzhao/p/13461242.html
Copyright © 2011-2022 走看看