小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

floyd最短路徑算法

 無(wú)名小卒917 2014-08-04

floyd 算法是基于DP(動(dòng)態(tài)規(guī)劃的一種算法),用于求每對(duì)頂點(diǎn)之間的最短路。

floyd 算法是 三層 for 循環(huán) ,復(fù)雜度是O(v^3) ,并且 隱藏在 O(v^3)下的常數(shù)也是非常小

算法介紹:

  • 它需要用鄰接矩陣來(lái)儲(chǔ)存邊
  • 從任意一條單邊路徑開始。所有兩點(diǎn)之間的距離是邊的權(quán),如果兩點(diǎn)之間沒(méi)有邊相連,邊權(quán)就是無(wú)窮大。
  • 對(duì)于每一對(duì)頂點(diǎn) u 和 v,看看是否存在一個(gè)頂點(diǎn) w 使得從 u 到 w 再到 v 比己知的路徑更短。如果是更新它。這種方法做松弛技術(shù)。松弛技術(shù)是三角關(guān)系     實(shí)質(zhì)就是 :   d(s,u)= min(d(s,u), d(s,v)+d(v,u) )   。d(s,u)  表示從s點(diǎn)到 u 點(diǎn)的路徑長(zhǎng)度。。。也就是如果找到一條比當(dāng)前路徑更短的路徑長(zhǎng)度,就更新當(dāng)前的路徑長(zhǎng)度。。

這個(gè)算法通過(guò)考慮最佳子路徑來(lái)得到最佳路徑。這個(gè)算法很容易實(shí)現(xiàn),只要幾行。

 dp狀態(tài)轉(zhuǎn)移的方程是 :   dp[k,i,j]=min(dp[k-1,i,j],dp[k-1,i,k]+dp[k-1,k,j])

  1. for(int k =1 ;  k <= n ; k ++ ){  
  2.   
  3.     for(int i =1 ; i<= n ; i++){  
  4.   
  5.         for(int j =1 ;j<=n;j++){  
  6.   
  7.                dp[k][ i ][ j ]= min( dp[k-1][ i ][ j ],dp[k-1][ i ][ k ]+dp[k-1][ k ][ j ] );        
  8.   
  9.           }  
  10.   
  11.      }  
  12.   
  13. }  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多