Java を使用してフロイドのアルゴリズムを実装する方法
フロイドのアルゴリズムは、任意の 2 つの頂点間の最短経路を見つけるために使用されるアルゴリズムです。プログラミングでは、最短経路の値を継続的に更新して最適な解を見つけます。この記事では、Java プログラミング言語を使用してフロイドのアルゴリズムを実装する方法を紹介し、具体的なコード例を示します。
public class FloydAlgorithm { public static void floyd(int[][] graph) { int n = graph.length; // 初始化最短路径矩阵 int[][] dist = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { dist[i][j] = graph[i][j]; } } // 更新最短路径矩阵 for (int k = 0; k < n; k++) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (dist[i][k] != Integer.MAX_VALUE && dist[k][j] != Integer.MAX_VALUE && dist[i][k] + dist[k][j] < dist[i][j]) { dist[i][j] = dist[i][k] + dist[k][j]; } } } } // 输出最短路径矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.print(dist[i][j] + " "); } System.out.println(); } } public static void main(String[] args) { int[][] graph = { {0, 5, Integer.MAX_VALUE, 10}, {Integer.MAX_VALUE, 0, 3, Integer.MAX_VALUE}, {Integer.MAX_VALUE, Integer.MAX_VALUE, 0, 1}, {Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, 0} }; floyd(graph); } }
上記のコードでは、次のように定義します。 FloydAlgorithm クラスの floyd メソッドは、Floyd アルゴリズムを実装するために使用されます。 main メソッドでは、サンプル グラフの隣接行列グラフを定義し、最短パス行列を解くために floyd メソッドを呼び出します。
以上がJavaを使用してフロイドのアルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。