fix(dijkstra): remove then insert to sort bin heap

This commit is contained in:
Paul Alnet 2024-05-03 13:57:54 +02:00
parent 6baec1d7dd
commit 5363dd1a89

View file

@ -78,11 +78,15 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
// Si le noeud n'a pas déjà était rajouté au tas, on le rajoute
// isReached permet de vérifier en complexité O(1)
// C'est un léger coût en mémoire pour un gain en vitesse
if (!successor.isReached()) {
tas.insert(successor);
if (successor.isReached()) {
// removing then inserting resorts the binary heap
tas.remove(successor);
} else {
successor.markReached();
notifyNodeReached(successor.getNode());
}
tas.insert(successor);
}
}
}