この例では、参照の最短パスを見つけるために、フロイドアルゴリズムのJava実装の特定のコードを共有しています。特定のコンテンツは次のとおりです
java.io.fileinputStreamをインポートします。 java.io.filenotfoundexceptionをインポートします。 Java.util.scannerをインポートします。 public class testmainio { / ** * @param args * @throws filenotfoundexception * / public static void main(string [] args)throws filenotfoundexception {testmainio test_print = new testmainio(); int [] [] g = test_print.intputgragh( "d://users//test.txt"、6); int [] [] dis = test_print.floyd(g、6); test_print.printg(dis、6); } public void printg(int [] [] g、int n){for(int i = 0; i <n; i ++){for(int j = 0; j ++){system.out.println(i+" - >"+j+"+"+g [i] [j]); }}} public int [] [] intgragh(string path、int num)throws filenotfoundexception {int [] [] g = new int [num] [num]; for(int i = 0; i <num; i ++){for(int j = 0; j <num; j ++){g [i] [j] = 999; }} scanner in = new Scanner(new FileInputStream(PATH)); while(in.hasnext()){int i = in.nextint(); int j = in.nextint(); int weight = in.nextint(); g [i] [j] = weight; } gを返します。 } public int [] [] floyd(int [] [] g、int n){int [] [] dis = new int [n] [n]; for(int q = 0; q <n; q ++){for(int w = 0; w <n; w ++){dis [q] [w] = g [q] [w]; }} for(int k = 0; k <n; k ++){for(int i = 0; i <n; i ++){for(int j = 0; j <n; j ++){if(dis [i] [j]> dis [i] [k]+dis [k] [j]){dis [i] [j] = dis [k]+dis [k]; }}} disを返します。 }}}}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。