Floyd算法


#include <stdio.h>

#define NumVertical 4
#define Inf 0xFFF

int Dist[NumVertical][NumVertical] = {{0,5,Inf,7},{Inf,0,4,2},{3,3,0,2},{Inf,Inf,1,0}};
int path[NumVertical][NumVertical];

int Floyd()
{
	for (int index1=0;index1<NumVertical;index1++)
	{
		for (int index2=0;index2<NumVertical;index2++)
		{
			path[index1][index2]=-1;
		}
	}

	for (int index1=0;index1<NumVertical;index1++)
	{
		for (int index2=0;index2<NumVertical;index2++)
		{
			for (int index3=0;index3<NumVertical;index3++)
			{
				if (Dist[index2][index3]>Dist[index2][index1]+Dist[index1][index3] )
				{
					Dist[index2][index3]=Dist[index2][index1]+Dist[index1][index3];
					path[index2][index3]=index1;
				}
			}
		}
	}
	return 0;
}
int main()
{
	Floyd();
	for (int index1=0;index1<NumVertical;index1++)
	{
		for (int index2=0;index2<NumVertical;index2++)
		{
			printf("\t%2d",Dist[index1][index2]);
		}
		printf("\n");
	}
	getchar();
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值