diff --git a/slides/cours_27.md b/slides/cours_27.md
index 3e560e940effa514f1a4af7648f19bc6ee886f67..10d649dae7e6a848a49b062a78a3e42fbabd905d 100644
--- a/slides/cours_27.md
+++ b/slides/cours_27.md
@@ -492,3 +492,130 @@ O(|V|)  u, fp = défiler(file_priorité)
 
 # Algorithme de Kruskal
 
+* On ajoute les arêtes de poids minimal:
+    * si cela ne crée pas de cycle;
+    * on s'arrête quand on a couvert tout le graphe.
+
+. . .
+
+* Comment on fait ça?
+
+. . .
+
+* Faisons un exemple pour voir.
+
+# Algorithme de Kruskal: exemple
+
+::: columns
+
+:::: column
+
+## Un exemple
+
+![Le graphe de départ.](figs/kruskal_0.png)
+
+::::
+
+:::: column
+
+## On part de `(a, d)` (poids le plus faible)
+
+![Les sommets `a, d` sont couverts.](figs/kruskal_1.png)
+
+::::
+
+:::
+
+# Algorithme de Kruskal: exemple
+
+::: columns
+
+:::: column
+
+## On continue avec `(c, d)`
+
+![On aurait pu choisir `(d, e)` aussi.](figs/kruskal_1.png)
+
+::::
+
+:::: column
+
+## Résultat
+
+![Les sommets `a, d, c` sont couverts.](figs/kruskal_2.png)
+
+::::
+
+:::
+
+# Algorithme de Kruskal: exemple
+
+::: columns
+
+:::: column
+
+## On continue avec `(d, e)`
+
+![Le poids de `(d, e)` est le plus bas.](figs/kruskal_2.png)
+
+::::
+
+:::: column
+
+## Résultat
+
+![Les sommets `a, d, c, e` sont couverts.](figs/kruskal_3.png)
+
+::::
+
+:::
+
+# Algorithme de Kruskal: exemple
+
+::: columns
+
+:::: column
+
+## On continue avec `(b, e)`
+
+![Le poids de `(b, e)` est le plus bas.](figs/kruskal_3.png)
+
+::::
+
+:::: column
+
+## Résultat
+
+![Les sommets `a, d, c, e, b` sont couverts.](figs/kruskal_4.png)
+
+::::
+
+:::
+
+# Algorithme de Kruskal: exemple
+
+::: columns
+
+:::: column
+
+## Mais pourquoi pas `(c, e)`?
+
+![Le poids de `(b, e)` ou `(a,c)` est le même.](figs/kruskal_3.png)
+
+::::
+
+:::: column
+
+## Résultat: un cycle
+
+![Les sommets `a, d, c, e` sont couverts.](figs/kruskal_cycle.png)
+
+::::
+
+:::
+
+* Comment faire pour empêcher l'ajout de `(c, e)` ou `(a, c)`?
+
+. . .
+
+* Si les deux sommets sont déjà couverts nous sommes sauvés (presque)!
\ No newline at end of file
diff --git a/slides/figs/kruskal_0.png b/slides/figs/kruskal_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..c413e3d52420a86b4323bef5baf0b4a2b987f0bb
Binary files /dev/null and b/slides/figs/kruskal_0.png differ
diff --git a/slides/figs/kruskal_1.png b/slides/figs/kruskal_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a0da02fa35abb08fca7770b7873f558e7938aa7
Binary files /dev/null and b/slides/figs/kruskal_1.png differ
diff --git a/slides/figs/kruskal_2.png b/slides/figs/kruskal_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cfe459bea24b3a3b0146f672f191ff4d7f51e16
Binary files /dev/null and b/slides/figs/kruskal_2.png differ
diff --git a/slides/figs/kruskal_3.png b/slides/figs/kruskal_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..66c03316704961ca8bd53ad66adac079f167891b
Binary files /dev/null and b/slides/figs/kruskal_3.png differ
diff --git a/slides/figs/kruskal_4.png b/slides/figs/kruskal_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c6741560c2475044005295b7b68a5cdcbf9913e
Binary files /dev/null and b/slides/figs/kruskal_4.png differ
diff --git a/slides/figs/kruskal_cycle.png b/slides/figs/kruskal_cycle.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c16b2f010793b7ff1944b6fb04da43e9863ef54
Binary files /dev/null and b/slides/figs/kruskal_cycle.png differ