多源最短路径经典算法-Floyd
Floyd算法解决图任意两点间的最短路径问题,允许出现负权的边,但是不允许负权的边组成回路。
基本思想:使用n×nn\times{n}n×n矩阵表示两点间的距离,只有通过引入第三点才能带来改变,如s[i,j]两点引入k点,s[i,j]两点的距离可以使用s[i,k]+s[k,j]之和来替代。当依次引入图中的所有点之后,矩阵标识的距离就是图中任意两点之间最短路径。
package main
import "fmt"
//FMap is used to store point`s distrance
var FMap [4][4]int32
//PointNum is point num
var PointNum int = 4
func main() {
var Inf int32

Floyd算法是一种处理图中任意两点间最短路径的经典算法,即使存在负权重边。该算法的核心是通过迭代的方式,每次引入一个中间节点来更新所有路径。在Go语言中,通过构建n×n矩阵,逐步检查并可能通过第三节点缩短路径长度。经过完整遍历所有节点,矩阵中的每个元素都将表示图中对应节点间的最短距离。

350

被折叠的 条评论
为什么被折叠?



