zoukankan      html  css  js  c++  java
  • 最短路路径(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]).

  • 相关阅读:
    Python-内置函数
    Python-匿名函数
    Python-函数递归-二分法
    Python-函数递归
    Day4-函数
    CSS-定位
    CSS-文本属性,文字属性
    CSS-浮动
    CSS-盒模型
    CSS-继承和层叠
  • 原文地址:https://www.cnblogs.com/TJack/p/10586566.html
Copyright © 2011-2022 走看看