js-graph-algorithms
js-graph-algorithms copied to clipboard
Typo in Dijkstra's priority queue comparison function breaks Dijkstra
When creating the min priority queue, the Dijkstra function passes in return cost1, cost2 as the function, causing it to always return cost2:
https://github.com/chen0040/js-graph-algorithms/blob/01b523553f2169923185cd0c39a434c5792e9458/src/jsgraphs.js#L938-L940
It should probably be cost1 - cost2, like:
diff --git a/src/jsgraphs.js b/src/jsgraphs.js
index 5409240..1392673 100644
--- a/src/jsgraphs.js
+++ b/src/jsgraphs.js
@@ -936,7 +936,7 @@ var jsgraphs = jsgraphs || {};
this.edgeTo = [];
this.cost = [];
this.pq = new jss.IndexMinPQ(V, function(cost1, cost2){
- return cost1, cost2;
+ return cost1 - cost2;
});
for(var v =0; v < V; ++v){