diff --git a/slides/cours_25.md b/slides/cours_25.md
index eb6e6a086ac21280888899823c93201e91ebbefe..ec0426651a039b94c3fc76cf3502b85c92fb2332 100644
--- a/slides/cours_25.md
+++ b/slides/cours_25.md
@@ -487,9 +487,47 @@ distance, précédent dijkstra(graphe, s, t):
     retourne distance, précédent
 ```
 
+# Algorithme de Dijkstra avec file
+
+\footnotesize
+
+```C
+distance dijkstra(graphe, s, t)
+---------------------------------------------------------
+    pour v dans sommets(graphe)
+O(V)    si v != s
+            distance[v] = infini
+O(V)        fp = enfiler(fp, v, distance[v]) // notre impl est nulle
+------------------O(V * V)-------------------------------
+    tant que !est_vide(fp)
+O(V)    u, fp = défiler(fp)
+---------------------------------------------------------
+O(E)    pour v dans voisinage de u
+            n_distance = distance[u] + w(i, v)
+            si n_distance < distance[v]
+                distance[v] = n_distance
+O(V)            fp = changer_priorité(fp, v, n_distance)
+---------------------------------------------------------
+    retourne distance
+```
+
+* Total: $\mathcal{O}(|V|^2+|E|\cdot |V|)$:
+    * Graphe dense: $\mathcal{O}(|V|^3)$ 
+    * Graphe peu dense: $\mathcal{O}(|V|^2)$ 
+
+# Algorithme de Dijkstra avec file
+
+## On peut faire mieux
+
+* Avec une meilleure implémentation de la file de priorité:
+    * Tas binaire: $\mathcal{O}(|V|\log|V|+|E|\log|V|)$.
+    * Tas de Fibonnacci: $\mathcal{O}(|V|+|E|\log|V|)$
+* Graphe dense: $\mathcal{O}(|V|^2\log|V|)$.
+* Graphe peu dense: $\mathcal{O}(|V|\log|V|)$.
+
 # Algorithme de Dijkstra (exercice, 5min) 
 
-![L'exercice.](figs/dijkstra_exo.png)
+![L'exercice.](figs/dijkstra_exo.png){width=60%}
 
 * Donner la liste de priorité, puis...
 
@@ -535,3 +573,4 @@ distance, précédent dijkstra(graphe, s, t):
 
 * 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.
+