From cc33d36fa046c1d9f05efdfaca6a08d493f38b53 Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Sun, 20 Feb 2022 00:50:54 +0100
Subject: [PATCH] started binary search

---
 slides/cours_15.md | 40 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/slides/cours_15.md b/slides/cours_15.md
index f6d0a4d..3ab8419 100644
--- a/slides/cours_15.md
+++ b/slides/cours_15.md
@@ -735,6 +735,44 @@ sous-arbres de gauche et de droite.
 
 # La recherche dans un arbre binaire
 
-* Les arbres binaires peuvent retouver une 
+* Les arbres binaires peuvent retrouver une information très rapidement.
+* À quelle complexité? À quelle condition?
+
+. . .
+
+## Condition
+
+* Le contenu de l'arbre est **ordonné** (il y a une relation d'ordre (`<`, `>`
+  entre les éléemts).
+
+## Complexité
+
+* La profondeur de l'arbre (ou le $\mathcal{O}(\log_2(N))$)
+
+. . .
+
+## Exemple: les arbres lexicographiques
+
+* Chaque noeud contient une information de type ordonné, la **clé**,
+* Par construction, pour chaque noeud $N$:
+    * Toutes clé du sous-arbre à gauche de $N$ sont inférieurs à la clé de $N$.
+    * Toutes clé du sous-arbre à droite de $N$ sont inférieurs à la clé de $N$.
+
+# Algorithme de recherche
+
+* Retourner le noeud si la clé est trouvée dans l'arbre.
+
+```python
+arbre recherche(clé, arbre)
+    tante que est_non_vide(arbre)
+        si clé < arbre.clé
+            arbre = gauche(arbre)
+        sinon si clé > arbre.clé
+            arbre = droite(arbre)
+        sinon
+            retourne arbre
+    retourne NULL
+    
+```
 
 [^1]: Copyright cours de mathématiques pendant trop d'années.
-- 
GitLab