1.要實現Floyd算法,首先須要構建帶權圖的鄰接矩陣:spa
在鄰接矩陣當中,每個數字表明着從某個頂點到另外一個頂點的直接距離,這個距離是沒有涉及到任何中繼頂點的3d
2.此時假定只容許以頂點A做爲中繼頂點,那麼各頂點之間的距離會變成什麼樣子呢?blog
B和C之間的距離本來是無窮大,此時以A爲中繼,距離縮短爲AB距離+AC距離=5+2=7。更新對應矩陣元素(橙色區域表明頂點A到其餘頂點的臨時距離):get
3.接下來以頂點A、B做爲中繼頂點,那麼各頂點之間的距離會變成什麼樣子呢?class
A和D之間的距離本來是無窮大,此時以B爲中繼,距離縮短爲AB距離+BD距離=5+1=6。im
A和E之間的距離本來是無窮大,此時以B爲中繼,距離縮短爲AB距離+BE距離=5+6=11。qq
更新對應矩陣元素(橙色區域表明頂點B到其餘頂點的臨時距離):img
4.接下來以頂點A、B、C做爲中繼頂點,那麼各頂點之間的距離會變成什麼樣子呢?di
A和F之間的距離本來是無窮大,此時以C爲中繼,距離縮短爲AC距離+CF距離=2+8=10。
更新對應矩陣元素(橙色區域表明頂點C到其餘頂點的臨時距離):
以此類推,咱們不斷引入新的中繼頂點,不斷刷新矩陣中的臨時距離。最終,當全部頂點均可以做爲中繼頂點時,咱們的距離矩陣更新以下:
此時,矩陣中每個元素,都對應着某頂點到另外一個頂點的最短距離