只有五行的算法--Floyd--Warshall

来源:互联网 发布:淘宝海报文案怎么写 编辑:程序博客网 时间:2024/06/02 13:09
#include<stdio.h>int main(){    int e[10][10],k,i,j,n,m,t1,t2,t3;    int inf=99999999;//用inf存储一个我们认为的正无穷值    //读入n和m,n表示顶点个数,m表示边的条数    scanf("%d%d",&n,&m);    //初始化    for(i=1; i<=n; i++)        for(j=1; j<=n; j++)        {            if(i==j)                e[i][j]=0;            else                e[i][j]=inf;        }    //读入边    for(i=0; i<m; i++)    {        scanf("%d%d%d",&t1,&t2,&t3);        e[t1][t2]=t3;    }    //Floyd-Warshall算法核心语句    for(k=1; k<=n; k++)        for(i=1; i<=n; i++)            for(j=1; j<=n; j++)                if(e[i][j]>e[i][k]+e[k][j])                    e[i][j]=e[i][k]+e[k][j];    //输出最终结果    for(i=1; i<=n; i++)    {        for(j=1; j<=n; j++)            printf("%10d",e[i][j]);        printf("\n");    }    return 0;}/*4 81 2 21 3 61 4 42 3 33 1 73 4 14 1 54 3 12图0 2 5 49 0 3 46 8 0 15 7 10 0*/

0 0