fix(dijkstra): remove then insert to sort bin heap
This commit is contained in:
parent
6baec1d7dd
commit
5363dd1a89
1 changed files with 6 additions and 2 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue