com.rao.graphパッケージ; / * * * @author Srao * @classNameフロイド * @date 2019年12月11日夜06時43分 * @package com.rao.graph * @descriptionフロイドのアルゴリズム * / パブリック クラスフロイド{ 最終的な静的 int型 INF = Integer.MAX_VALUEの; / * * *フロイドのアルゴリズム * @paramマトリックス * / パブリック 静的 ボイドフロイド(INT [] []行列){ //は巡回行列の値を更新し、matrix.lengthリターン行番号である ため(int型 K = 0 ; K <matrix.length K ++ ){ 用(INT I = 0 ; I <matrix.length; I ++ ){ ため(INT J = 0 ; J <matrix.length; J ++ ){ IF(行列[I] [K] == || INF行列[K] [J]は== INF)は{ 続行; } 行列[I] [J] = Math.min(行列[I]、[J]、行列[I] [K] + 行列[K] [J]); } } } // 最短経路のフロイド結果印刷 システム。OUT .println(「最短経路マトリックス:」); 用(INTは iが= 0を I ++; I <matrix.length {) のための(int型 J = 0 ; J <matrix.length; J ++ ){ システム。アウト .printf(" %の3D " 、行列[I] [J])。 } システム。アウト.println(); } } パブリック 静的 ボイドメイン(文字列[]引数){ INT [] []行列= { { 0、5、2、INF、INF、INF、INF}、 { 5、0、INF、1、6 、INF、INF}、 { 2、INF、0、6、INF、8 、INF}、 {INF、1、6、0、1、2 、INF}、 {INF、6、INF、1、0、INF、7 }、 {INF、INF、8、2、INF、0、3}、 {INF、INF、INF、INF、7、3、0 } }。 フロイド(マトリックス) } }
。