ajout dichotomie

This commit is contained in:
2022-03-30 14:58:47 +02:00
parent e9c4761f7f
commit 32c04bd030
2 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
> Après avoir vu le parcours séquentiel d'un tableau dans le but de trouver un élèment, on va pouvoir voir une méthode bien plus efficace dans le cas d'une liste triée, **la recherche dichotomique.**
### Le programme
![bo_dichotomique](assets/bo_dichotomique.png)
-----------
### Etymologie
Le mot dichotomie vient du grec ancien
$$
dikhotomia
$$
qui signifie ***couper en deux***
-------------
### Problème de base
Supposons un tableau tab :
```python
tab = [1,2,6,9,12,14,18,21,42]
```
Si on souhaite chercher un élèment, par exemple 7, en utilisant le [parcours séquentiel](PARCOURS.md) on fonctionne par balayage (avec une boucle for...) et donc parcourir la liste du début à la fin en colparant chaque valeur à l'élèment recherché.
Ici par exemple, on effectuerait 9 comparaison pour finir par dire que non, 7 n'est pas présent.
Dans le cas d'une liste **déjà triée**, la recherche dichotomique permet d'améliorer les performances.
-----------
### Principe
- Si le tableau est vide, on renvoie False, la recherche est terminée.
- Sinon, on trouve la valeur la plus *centrale* du tableau et on la compare avec l'élément recherché :
- si la valeur est celle qu'on recherche, on renvoie True, la recherche est terminée.
- si la valeur est plus petite que l'élèment recherché, on recommence la procédure avec la seconde moitié du tableau.
- si la valeur est plus grande que l'élément recherché, on recommence avec la première moitié du tableau.
![dichotomie](assets/dichotomie.png)
Par Tushe2000 — Template:LoStrangolatore, Domaine public, https://commons.wikimedia.org/w/index.php?curid=39675138

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB