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 // Si le noeud n'a pas déjà était rajouté au tas, on le rajoute
// isReached permet de vérifier en complexité O(1) // isReached permet de vérifier en complexité O(1)
// C'est un léger coût en mémoire pour un gain en vitesse // C'est un léger coût en mémoire pour un gain en vitesse
if (!successor.isReached()) { if (successor.isReached()) {
tas.insert(successor); // removing then inserting resorts the binary heap
tas.remove(successor);
} else {
successor.markReached(); successor.markReached();
notifyNodeReached(successor.getNode()); notifyNodeReached(successor.getNode());
} }
tas.insert(successor);
} }
} }
} }