任意两点最短路径问题(Floyd算法)

该算法实现的主要思路是声明一个路径矩阵和一个距离矩阵,利用动态规划的思想,依次将所有顶点作为中转顶点进行遍历,计算出当前路径距离与上一次的结果进行比较,如果当前路径的距离更小则更新两个矩阵。最后只需要访问矩阵便可以得到结果。

具体代码实现:

#include
using namespace std;
#define INF 10000	//定义无穷大 
#define size 1001	//最大数据规模 

int path[size][size]//存路劲 
int dis[size][size];	//存距离 

void init()//数组初始化函数 ,这是算法的必要前提 
{
   
	for(int i=0;i<size;i++)
		for(int j=0;j<size;j++)
		{
   
			path[i][j]=-1;//初始化路径为-1 
			if

你可能感兴趣的:(算法很美,算法,数据结构,图论)