Skip to content

Commit db85993

Browse files
authored
Add Dijskstra's Algorithm (Fixes TheAlgorithms#2470) (TheAlgorithms#2476)
1 parent 7a1c4b0 commit db85993

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/*
2+
Refer https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/
3+
for better understanding
4+
*/
5+
package DataStructures.Graphs;
6+
7+
import java.util.*;
8+
import java.io.*;
9+
10+
class dijkstras{
11+
12+
int k=9;
13+
int minDist(int dist[], Boolean Set[])
14+
{
15+
int min = Integer.MAX_VALUE, min_index = -1;
16+
17+
for (int r = 0; r < k; r++)
18+
if (Set[r] == false && dist[r] <= min) {
19+
min = dist[r];
20+
min_index = r;
21+
}
22+
23+
return min_index;
24+
}
25+
26+
void print(int dist[])
27+
{
28+
System.out.println("Vertex \t\t Distance");
29+
for (int i = 0; i < k; i++)
30+
System.out.println(i + " \t " + dist[i]);
31+
}
32+
void dijkstra(int graph[][], int src)
33+
{
34+
int dist[] = new int[k];
35+
Boolean Set[] = new Boolean[k];
36+
37+
for (int i = 0; i < k; i++) {
38+
dist[i] = Integer.MAX_VALUE;
39+
Set[i] = false;
40+
}
41+
42+
dist[src] = 0;
43+
44+
for (int c = 0; c < k - 1; c++) {
45+
46+
int u = minDist(dist, Set);
47+
48+
Set[u] = true;
49+
50+
for (int v = 0; v < k; v++)
51+
52+
if (!Set[v] && graph[u][v] != 0 && dist[u] != Integer.MAX_VALUE && dist[u] + graph[u][v] < dist[v])
53+
dist[v] = dist[u] + graph[u][v];
54+
}
55+
56+
print(dist);
57+
}
58+
59+
public static void main(String[] args)
60+
{
61+
int graph[][] = new int[][] { { 0, 4, 0, 0, 0, 0, 0, 8, 0 },
62+
{ 4, 0, 8, 0, 0, 0, 0, 11, 0 },
63+
{ 0, 8, 0, 7, 0, 4, 0, 0, 2 },
64+
{ 0, 0, 7, 0, 9, 14, 0, 0, 0 },
65+
{ 0, 0, 0, 9, 0, 10, 0, 0, 0 },
66+
{ 0, 0, 4, 14, 10, 0, 2, 0, 0 },
67+
{ 0, 0, 0, 0, 0, 2, 0, 1, 6 },
68+
{ 8, 11, 0, 0, 0, 0, 1, 0, 7 },
69+
{ 0, 0, 2, 0, 0, 0, 6, 7, 0 } };
70+
dijkstras t = new dijkstras();
71+
t.dijkstra(graph, 0);
72+
}//main
73+
74+
}//djikstras
75+
76+
/*
77+
OUTPUT :
78+
Vertex Distance
79+
0 0
80+
1 4
81+
2 12
82+
3 19
83+
4 21
84+
5 11
85+
6 9
86+
7 8
87+
8 14
88+
*/

0 commit comments

Comments
 (0)