Heim >Java >javaLernprogramm >So implementieren Sie Floyds Algorithmus mit Java
So verwenden Sie Java, um den Floyd-Algorithmus zu implementieren
Der Floyd-Algorithmus ist ein Algorithmus, der verwendet wird, um den kürzesten Weg zwischen zwei beliebigen Eckpunkten zu finden. Er nutzt die Idee der dynamischen Programmierung, um die optimale Lösung zu finden, indem der Wert von ständig aktualisiert wird der kürzeste Weg. In diesem Artikel wird erläutert, wie die Programmiersprache Java zum Implementieren des Floyd-Algorithmus verwendet wird, und es werden spezifische Codebeispiele gegeben.
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); } }
Im obigen Code definieren wir eine FloydAlgorithm-Klasse und die Floyd-Methode wird zum Implementieren des Floyd-Algorithmus verwendet. In der Hauptmethode definieren wir den Adjazenzmatrixgraphen eines Beispielgraphen und rufen die Floyd-Methode auf, um die Matrix des kürzesten Pfades zu lösen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Floyds Algorithmus mit Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!