Comment utiliser Java pour implémenter l'algorithme de Floyd
L'algorithme de Floyd est un algorithme utilisé pour trouver le chemin le plus court entre deux sommets. Il utilise l'idée de programmation dynamique pour trouver la solution optimale en mettant constamment à jour la valeur de. le chemin le plus court. Cet article présentera comment utiliser le langage de programmation Java pour implémenter l'algorithme de Floyd et donnera des exemples de code spécifiques.
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); } }
Dans le code ci-dessus, nous définissons une classe FloydAlgorithm et la méthode floyd est utilisée pour implémenter l'algorithme Floyd. Dans la méthode principale, nous définissons le graphe matriciel de contiguïté d'un exemple de graphe et appelons la méthode Floyd pour résoudre la matrice du chemin le plus court.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!