This Java program is to find all pairs shortest path.This program finds the shortest distance between every pair of vertex in the graph.
Here is the source code of the Java program to find all pairs shortest path. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
import java.util.Scanner; public class AllPairShortestPath { private int distancematrix[][]; private int numberofvertices; public static final int INFINITY = 999; public AllPairShortestPath(int numberofvertices) { distancematrix = new int[numberofvertices + 1][numberofvertices + 1]; this.numberofvertices = numberofvertices; } public void allPairShortestPath(int adjacencymatrix[][]) { for (int source = 1; source <= numberofvertices; source++) { for (int destination = 1; destination <= numberofvertices; destination++) { distancematrix[destination] = adjacencymatrix[destination]; } } for (int intermediate = 1; intermediate <= numberofvertices; intermediate++) { for (int source = 1; source <= numberofvertices; source++) { for (int destination = 1; destination <= numberofvertices; destination++) { if (distancematrix[intermediate] + distancematrix[intermediate][destination] < distancematrix[destination]) distancematrix[destination] = distancematrix[intermediate] + distancematrix[intermediate][destination]; } } } for (int source = 1; source <= numberofvertices; source++) System.out.print("\t" + source); System.out.println(); for (int source = 1; source <= numberofvertices; source++) { System.out.print(source + "\t"); for (int destination = 1; destination <= numberofvertices; destination++) { System.out.print(distancematrix[destination] + "\t"); } System.out.println(); } } public static void main(String... arg) { int adjacency_matrix[][]; int numberofvertices; Scanner scan = new Scanner(System.in); System.out.println("Enter the number of vertices"); numberofvertices = scan.nextInt(); adjacency_matrix = new int[numberofvertices + 1][numberofvertices + 1]; System.out.println("Enter the Weighted Matrix for the graph"); for (int source = 1; source <= numberofvertices; source++) { for (int destination = 1; destination <= numberofvertices; destination++) { adjacency_matrix[destination] = scan.nextInt(); if (source == destination) { adjacency_matrix[destination] = 0; continue; } if (adjacency_matrix[destination] == 0) { adjacency_matrix[destination] = INFINITY; } } } System.out.println("The Transitive Closure of the Graph"); AllPairShortestPath allPairShortestPath= new AllPairShortestPath(numberofvertices); allPairShortestPath.allPairShortestPath(adjacency_matrix); scan.close(); } }
$javac AllPairShortestPath.java $java AllPairShortestPath Enter the number of vertices 4 Enter the Weighted Matrix for the graph 0 0 3 0 2 0 0 0 0 7 0 1 6 0 0 0 The Transitive Closure of the Graph 1 2 3 4 1 0 10 3 4 2 2 0 5 6 3 7 7 0 1 4 6 16 9 0
Related posts:
Spring MVC Async vs Spring WebFlux
Giới thiệu Design Patterns
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java 14 Record Keyword
Java Program to Implement Binary Tree
Immutable ArrayList in Java
New Features in Java 13
Java Program to Implement Find all Back Edges in a Graph
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Reading an HTTP Response Body as a String in Java
Injecting Prototype Beans into a Singleton Instance in Spring
Tính trừu tượng (Abstraction) trong Java
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Set Interface trong Java
Java Program to Convert a Decimal Number to Binary Number using Stacks
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
New Features in Java 12
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
Spring Cloud Connectors and Heroku
Custom JUnit 4 Test Runners
Java Program to Implement Singly Linked List
Java Program to Represent Graph Using Linked List
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Introduction to Eclipse Collections
Why String is Immutable in Java?
Giới thiệu Java 8
Java Program to Check whether Graph is a Bipartite using DFS
Java Program to Perform Quick Sort on Large Number of Elements
Java Program to Check Whether Topological Sorting can be Performed in a Graph
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Java 8 Streams peek() API
Java Program to Implement Weight Balanced Tree