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

首頁 > 學院 > 開發(fā)設計 > 正文

Bellman-Ford算法

2019-11-14 09:01:53
字體:
供稿:網(wǎng)友
/*Bellman-Ford算法偽代碼:for(i=0;i<n-1;i++)//執(zhí)行n-1輪操作,其中n為頂點數(shù){	for(each edge u->v)//每輪操作都遍歷所有邊	{	if(d[u]+length[u->v]<d[v])//以u為中介點可以使d[v]更小		{			d[v] = d[u] + length[u->v];//松弛操作		}	}}for(each edge u->v)//對每條邊進行判斷{	if(d[u] + length[u->v]<d[v])//如果仍可以被松弛	{		return false;//說明圖中有從源點可達的負環(huán)	}}return true;*///下面是完整Bellman-ford算法的代碼,圖是鄰接表形式,時間復雜度為O(VE)//若是鄰接矩陣形式,時間復雜度會到O(V^3)#include<vector>#include<algorithm>using namespace std;const int MAXV = 1000;const int INF = 1000000000;struct Node{	int v, dis;//v為鄰接邊的目標頂點,dis為鄰接邊的邊權(quán)};vector<Node> Adj[MAXV];//圖G的鄰接表int n;//n為頂點數(shù),MAXV為最大頂點數(shù)int d[MAXV];//起點到達各點的最短路徑長度bool Bellman(int s)//s為源點{	fill(d, d + MAXV, INF);	d[s] = 0;//起點s到達自身的距離為0			 //以下為求解數(shù)組d的部分	for (int i = 0; i < n - 1; i++)//執(zhí)行n-1輪操作,n為頂點數(shù)	{		for (int u = 0; u < n; u++)//每輪操作都遍歷所有的邊		{			for (int j = 0; j < Adj[u].size(); j++)			{				int v = Adj[u][j].v;//鄰接邊的頂點				int dis = Adj[u][j].dis;//鄰接邊的權(quán)				if (d[u] + dis < d[v])//以u為中介點可以使d[v]更小				{					d[v] = d[u] + dis;//松弛操作				}			}		}	}	//以下為判斷負環(huán)的代碼	for (int u = 0; u < n; u++)//對每條邊進行判斷	{		for (int j = 0; j < Adj[u].size(); j++)		{			int v = Adj[u][j].v;//鄰接表的頂點			int dis = Adj[u][j].dis;//鄰接邊的邊權(quán)			if (d[u] + dis < d[v])//如果仍可以被松弛			{				return false;//說明圖中有從源點可達的負環(huán)			}		}	}	return true;//數(shù)組d的所有值都已經(jīng)達到最優(yōu)}/*實質(zhì)是對最短路徑樹的逐層松弛*/
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚顺县| 梅河口市| 九龙城区| 长阳| 区。| 建湖县| 调兵山市| 望奎县| 镇原县| 辰溪县| 阳高县| 泗阳县| 佳木斯市| 霍山县| 敦煌市| 搜索| 黄梅县| 东安县| 响水县| 甘肃省| 贺州市| 珲春市| 柯坪县| 河北省| 汉寿县| 寻甸| 来安县| 日喀则市| 阜宁县| 都昌县| 韶山市| 饶平县| 巴塘县| 喜德县| 腾冲县| 泗阳县| 惠来县| 凤山县| 邻水| 西宁市| 安溪县|