数据结构------最短路弗洛伊德算法(Flody)

目录

前言

          一、Foldy代码核心介绍

 二、Flody代码详解:

三、所有代码:

四、 Foldy算法分析:

总结


前言

如果你要求所有顶点至所有顶点的最短路径问题时,弗洛伊德算法是非常不错的选择。因为它十分简洁。

一、Foldy代码核心介绍

(1)  两个二维数组D[v][w] 和P[v][w],分别存最短距离和最短路径。

(2) D[v][w] = min(D[v,w] ,D[v][k]+D[k][w])

数据结构------最短路弗洛伊德算法(Flody)_第1张图片

 二、Flody代码详解:

/*Floyd算法,求网图G中各顶点v到其余顶点w的最短路径P[v][w]及带权长度D[v][w]*/
void ShortestPath_Floyd(MGraph G,Patharc*P,ShortPathTable* D)
{
	int v, w, k;
	/*初始化D与P*/
	for (v = 0; v < G.numVertexes; v++)
	{
		for (w = 0; w < G.numVertexes; w++)
		{
			(*D)[v][w] = G.arc[v][w];
			(*P)[v][w] = w;
		}
	}
	
	for (k = 0; k < G.numVertex

你可能感兴趣的:(数据结构,c++,图论,数据结构,图搜索算法,动态规划)