最短路路径(1.1版待更新)

最短路路径(1.1版待更新)

一、只有5行代码的floyd算法:

1、 什么是floyd算法

弗洛伊德算法是解决多元最短路径的算法(什么是多源, 顾名思义就是起点有多个, 跑完floyd算法就算出以每个顶点做起点到各个点的最短路径)。

2、时间复杂度 O(n^3), 空间复杂度O(n^2)
3、适用性:
            1、多源最短路
            2、带负权值的
            优点:容易理解,可以算出任意两个节点之间的最短距离,代码编写简单。
            缺点:时间复杂度比较高,不适合计算大量数据。
4、代码实现
for(k = 0;k < n;k++)
    for(i = 0;i< n;i++)
        for(j = 0;j <n;j++)
            if(grap[i][j] > grap[i][k]+grap[k][j])
                 grap[i][j] = grap[i][k]+grap[k][j];

floyd算法用到的是动态规划算法。
动规公式: grap[i][j] = min(gtap[i][j], grap[i][k]+grap[k][j]).

posted @ 2019-03-24 00:02 Monkey1 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值