Skip to content
Snippets Groups Projects
Verified Commit 49279c0f authored by orestis.malaspin's avatar orestis.malaspin
Browse files

finished dijkstra. need to do floyd

parent d483be52
No related branches found
No related tags found
No related merge requests found
......@@ -523,31 +523,15 @@ distance, précédent dijkstra(graphe, s, t):
![Le corrigé partie 6.](figs/dijkstra_ex_5.png)
# Complexité de l'algorithme de Dijkstra?
# Limitation de l'algorithme de Dijkstra
\footnotesize
## Que se passe-t-il pour?
![Exemple.](figs/exemple_neg.png){width=50%}
## Quel est le problème?
. . .
```C
distance, précédent dijkstra(graphe, s, t):
distance[source] = 0
fp = file_p_vide()
----------------------------------------------
pour v dans sommets(graphe)
si v != s
O(V) distance[v] = infini
fp = enfiler(fp, v, distance[v])
----------------------------------------------
tant que !est_vide(fp)
O(V) u, fp = défiler(fp)
----------------------------------------------
pour v dans voisinage de u
O(E) n_distance = distance[u] + w(i, v)
si n_distance < distance[v]
distance[v] = n_distance
fp = changer_priorité(fp, v, n_distance)
----------------------------------------------
----------------------------------------------
retourne distance
```
* L'algorithme n'essaiera jamais le chemin `s->x->y->v` et prendra direct `s->v`.
* Ce problème n'apparaît que s'il y a des poids négatifs.
slides/figs/exemple_neg.png

47.3 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment