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
|
// 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue