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