Floyd-Warshall算法描述
1)適用范圍:
a)APSP(All Pairs Shortest Paths)
b)稠密圖效果最佳
c)邊權(quán)可正可負(fù)
2)算法描述:
a)初始化:dis[u,v]=w[u,v]
b)For k:=1 to n
For i:=1 to n
For j:=1 to n
If dis[i,j]>dis[i,k]+dis[k,j] Then
Dis[I,j]:=dis[I,k]+dis[k,j]
c)算法結(jié)束:dis即為所有點(diǎn)對(duì)的最短路徑矩陣
3)算法小結(jié):此算法簡(jiǎn)單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對(duì)于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時(shí)間復(fù)雜度O(n^3)。
考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個(gè)判斷I,j是否有通路的矩陣。更簡(jiǎn)單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽:
Floyd-Warshall
Shortest
Pairs
Paths
上傳時(shí)間:
2013-12-01
上傳用戶:dyctj
程序說明:浮點(diǎn)數(shù)變?yōu)閴嚎sBCD碼,保存在以數(shù)組中
第1字節(jié)的位7:0正,1負(fù).位6:0(位5--0代表小數(shù)點(diǎn)前的位數(shù)),1(位5--0代表小數(shù)
點(diǎn)后0的位數(shù))
2--4字節(jié)為壓縮BCD碼,有效位為7位,3個(gè)半字節(jié),最后半個(gè)字節(jié)請(qǐng)使用者自行放
棄
程序占用資源PSW,A,B,DPTR,R0--R7,SP深度6,RAM 5個(gè)放數(shù)據(jù)
keil 兼容,調(diào)用KEIL 的FPMUL子程序。
程序作者:*************陳遠(yuǎn)征**************
目 的:追求更快的執(zhí)行速度,與最小的程序代碼
發(fā)布時(shí)間:2003--05--08
編寫背景:精通匯編,研究C51半個(gè)月。身感C51方便中的不便
研究了幾種匯編及KEIL的浮點(diǎn)算法,特做此程序.
聲 明:轉(zhuǎn)載時(shí)請(qǐng)保留以上的信息
標(biāo)簽:
BCD
字節(jié)
程序
浮點(diǎn)數(shù)
上傳時(shí)間:
2016-07-20
上傳用戶:磊子226