Cara menggunakan Java untuk melaksanakan algoritma Floyd
Algoritma Floyd ialah algoritma yang digunakan untuk mencari laluan terpendek antara mana-mana dua bucu Ia menggunakan idea pengaturcaraan dinamik untuk mencari penyelesaian optimum dengan sentiasa mengemas kini nilai jalan terpendek. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan Java untuk melaksanakan algoritma Floyd dan memberikan contoh kod khusus.
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); } }
Dalam kod di atas, kami mentakrifkan kelas FloydAlgorithm, dan kaedah floyd digunakan untuk melaksanakan algoritma Floyd. Dalam kaedah utama, kami mentakrifkan graf matriks bersebelahan bagi graf contoh dan memanggil kaedah floyd untuk menyelesaikan matriks laluan terpendek.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma Floyd menggunakan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!