月光論壇

HOME

急問..用C程式寫出Bellman-Ford最短路徑演算法

請問我想用C程式寫出Bellman-Ford最短路徑演算法..但我查了好多資料和書本..這個演算法的資料真的好少..只有Floyd這個演算法比較常見...我目前只寫的出Floyd演算法的...想請問有人會用C程式寫出Bellman-Ford最短路徑演算法嗎?
(有回答出我的問題的第一位回答者..我會立刻選你做最佳解答!)

急問!20點!要更多點也行!
fly
因為你沒有給詳細的條件,所以我寫虛擬碼,如果有需要詳細的程式碼的話我再補充

先定代號XXX代表無限大
input:
n, 節點的數目
V,節點的集合
E,邊的集合
(u, v),節點u到節點v的邊
w,路徑長度的函數,w(u, v)代表點u到點v的距離,假使u到v沒有邊的話則
 w(u,v) = XXX
s,起始節點

程式:
===============================================
for each u in V
 d[u] = XXX
d[s] = 0

for i = 1 to n - 1
 do for each edge (u,v) in E
  do if d[v] > d[u] + w(u, v)
   d[v] = d[u] + w(u, v)

for each edge(u, v) in E
 do if d[v] > d[u] + w(u, v)
  then return false
return true
===============================================

程式結束後d[v]代表s到v的最短距離,如果程式回傳值是false代表input含有路徑長為負的cycle

這個演算法的好處是有邊長為負的邊也可以使用,而且可以偵測是否含有負的迴圈
UP TO DATE BLOG
急問..用C程式寫出Bellman-Ford最短路徑演算法
dy/dx=y-x如何化成y=ce^x+x+1
請問高高屏那家醫院皮膚科專冶蟹足腫??????
國文問題~「三顧頻煩天下計一番晤對古今情 」~急!
勁舞團國標!?國特!!?
何謂破裂韌性 在材料中指的是如何
秀朗跟秀山國小的游泳池哪個好
請問 LOWRYS FARM 還有在打折嗎?
這款Agnes.b 包是真是假!? (煩請大大給一下意見)
頭文字D~~~FD---I型?V型(20點)
運動時發出「卡啦卡啦」的聲音....
從台灣一路轉機到瑞士 (經香港), 非常害怕轉機時間不夠
方師傅點心坊有網站嗎?
哪幾款線上遊戲是可以有寵物養的呢?(免費線上遊戲)
香港藝人組合~~開心少女組的近況
網頁被www.4199.com鎖住
PSP的類比搖桿頭掉了
新聞時事 李慧芬
請問除了白米社區還有什麼有關社區營造?
請問母文鳥單獨一隻也會生蛋嗎?
LINK BLOG


Comment
Title:
Url:
Validate:
Validate
 
Powered by 月光論壇© 2005-2008