Skip to content

Commit c5a9543

Browse files
authored
Merge branch 'iiitv:master' into master
2 parents c63ab86 + 334ae59 commit c5a9543

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

dijkstra/dijkstra.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
// @raunak kumar jaiswal
3+
function mindistance(ans, visited) {
4+
var min_index = -1;
5+
var min_value = Number.MAX_VALUE;
6+
for (var i = 0; i < visited.length; i++) {
7+
if (visited[i] == 0 && ans[i] < min_value) {
8+
min_value = ans[i];
9+
min_index = i;
10+
}
11+
}
12+
return min_index;
13+
}
14+
15+
function dijjj(visited, graph, ans, total) {
16+
for (var j = 0; j < total; j++) {
17+
var min_index = mindistance(ans, visited);
18+
if (min_index == -1) {
19+
return
20+
}
21+
visited[min_index] = 1;
22+
var dist = ans[min_index];
23+
for (var i = 0; i < graph[min_index].length; i++) {
24+
var ele = graph[min_index][i];
25+
var vrr = ele[0];
26+
var w = ele[1];
27+
if (visited[vrr] == 0 && dist + w < ans[vrr]) {
28+
ans[vrr] = dist + w;
29+
}
30+
}
31+
}
32+
}
33+
34+
function make_graph(edge, graph) {
35+
edge.forEach(ede => {
36+
graph[ede[0]].push([ede[1], ede[2]])
37+
graph[ede[1]].push([ede[0], ede[2]])
38+
})
39+
}
40+
41+
const dijkshtra = () => {
42+
var node = 6;
43+
var graph = [];
44+
for (var i = 0; i < node; i++) {
45+
graph[i] = [];
46+
}
47+
var edge = [[0, 1, 1], [0, 3, 7], [1, 3, 5], [0, 2, 3], [1, 2, 1], [1, 4, 3], [4, 5, 6], [5, 2, 2]];
48+
make_graph(edge, graph)
49+
var ans = new Array(node);
50+
var visited = new Array(node);
51+
for (var i = 0; i < node; i++) {
52+
ans[i] = Number.MAX_VALUE
53+
visited[i] = 0;
54+
}
55+
var sort_dist_from = 0;
56+
ans[sort_dist_from] = 0;
57+
dijjj(visited, graph, ans, node)
58+
console.log("distance from source node that is 0 by default")
59+
console.log("node distance")
60+
for (var i = 0; i < ans.length; i++) {
61+
console.log(i + " " + ans[i])
62+
}
63+
}
64+
dijkshtra()

0 commit comments

Comments
 (0)