java 邻接矩阵 最短路径_(邻接矩阵)最短路径算法

02b6edfe1ef3d1ed502a440cc785cd4d.png

073ecfb826e31bf0ed4b24dc1f30ea1a.png

Floyd算法:

思路 :遍历计算 i 点 经过 k 点 到 j 点 的最小路径值 (动态规划思路)

缺点:时间复杂度高,不能解决负边情况

输入样例:

4 8

1 2 2

1 3 6

1 4 4

2 3 3

3 1 7

3 4 1

4 1 5

4 3 12

输出样例:

1-->2:2

1-->3:5

1-->4:4

2-->1:9

2-->3:3

2-->4:4

3-->1:6

3-->2:8

3-->4:1

4-->1:5

4-->2:7

4-->3:10

#include #include#include#include#include#include#include

using namespacestd;const int inf=0x7fffff;const long long mod=1e9+7;const double PI=acos(-1);intn,m,start,end;int ans=9999999;bool vis[105];int e[105][105];void init(){ //初始化邻接矩阵

for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j) e[i][j]=0;else e[i][j]=inf;

}

}

}void Floyd(){ //思路:依此判断 i 通过 k 到 j 的最短路

for(int k=1;k<=n;k++){ //k 经转的节点

for(int

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值