Floyd演算法——寫給自己(粗略)

Gcean發表於2017-10-16
  1. 程式碼轉載而來,侵刪
  2. 依次掃描每一點(k),並以該點作為中介點,計算出通過k點的其他任意兩點(i,j)的最短距離,這就是floyd演算法的精髓
  3. void floyd(){  
        for(int k = 0;k < vertexnum;k++)  
            for(int i= 0;i < vertexnum;i++)  
                for(int j = 0;j < vertexnum;j++){  
                    if(weight[i][k] + weight[k][j] < weight[i][j]){  
                        weight[i][j] = weight[i][k] + weight[k][j];  
                        path[i][j] = path[k][j];  
                    }  
                }  
    } 
    以後再來完善

相關文章