国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 黄陵县| 思南县| 通辽市| 长丰县| 永清县| 新津县| 东至县| 巫溪县| 军事| 客服| 鄂尔多斯市| 闵行区| 奉新县| 威海市| 吴江市| 满城县| 蓝田县| 铜川市| 浮梁县| 石河子市| 改则县| 敦化市| 故城县| 利辛县| 兴安县| 兖州市| 玛曲县| 甘谷县| 乌鲁木齐市| 临邑县| 柳江县| 馆陶县| 伊宁县| 木里| 城固县| 太仆寺旗| 濮阳县| 凭祥市| 西乌珠穆沁旗| 奈曼旗| 麟游县|