国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實(shí)現(xiàn)多源最短路徑之Floyd算法示例

2020-01-26 13:58:47
字體:
供稿:網(wǎng)友

本文實(shí)例講述了C++實(shí)現(xiàn)多源最短路徑之Floyd算法。分享給大家供大家參考,具體如下:

#include<cstdio>#include<cstring>#include<iostream>#define MAX 999using namespace std;int n,m;int e[MAX][MAX];void Init(){  for(int i=1; i<=n; ++i)    for(int j=1; j<=n; ++j)    {      if(i==j)        e[i][j]=0;      else        e[i][j]=MAX;    }}void Input(){  int a,b,c;  for(int i=1; i<=m; ++i)  {    cin>>a>>b>>c;    e[a][b]=c;  }}void Floyd(){  for(int k=1; k<=n; k++)    for(int i=1; i<=n; i++)      for(int j=1; j<=n; j++)        if(e[i][j]>e[i][k]+e[k][j])          e[i][j]=e[i][k]+e[k][j];}void Output(){  for(int i=1; i<=n; ++i)    for(int j=1; j<=n; ++j)      cout<<"dis["<<i<<"]["<<j<<"] = "<<e[i][j]<<endl;}int main(){  while(1)  {    cout<<"n"<<endl;//頂點(diǎn)個(gè)數(shù)    cin>>n;    if(!n) break;    cout<<"m"<<endl;//邊的個(gè)數(shù)    cin>>m;    Init();    Input();    Floyd();    Output();  }}

Floyd算法是求多點(diǎn)最短路徑的一種算法,其核心代碼為

void Floyd(){  for(int k=1; k<=n; k++)    for(int i=1; i<=n; i++)      for(int j=1; j<=n; j++)        if(e[i][j]>e[i][k]+e[k][j])          e[i][j]=e[i][k]+e[k][j];}

希望本文所述對大家C++程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 田东县| 恩施市| 砀山县| 赤峰市| 锡林郭勒盟| 和平县| 丽水市| 临漳县| 桓台县| 平遥县| 泗水县| 浪卡子县| 开阳县| 碌曲县| 贡山| 西宁市| 金阳县| 简阳市| 耒阳市| 南京市| 保康县| 南安市| 安溪县| 吴桥县| 海原县| 会昌县| 五家渠市| 竹溪县| 马龙县| 新源县| 楚雄市| 山阳县| 沙河市| 玉屏| 阿克陶县| 黄龙县| 揭阳市| 扎兰屯市| 始兴县| 高邑县| 莲花县|