ajout code python dichotomie
This commit is contained in:
@@ -104,21 +104,28 @@ La recherche dichotomique est donc de complexité ***logarithmique***.
|
|||||||
|
|
||||||
### Terminaison
|
### Terminaison
|
||||||
|
|
||||||
Pour vérifier que la recherche dichotomique se termine bien, regardons ensemble son code python :
|
Pour vérifier que la recherche dichotomique se termine bien, regardons ensemble son code python - on suppose que le tableau en entrée est déjà trié.
|
||||||
|
|
||||||
````python
|
````python
|
||||||
def dichotomique (tab, x)
|
def dichotomique (tab, x)
|
||||||
```
|
```
|
||||||
:param res: booléen qui indique si un élèment x se trouve ou non dans le tableau tab
|
|
||||||
:param tab: tableau contenant différents élèments déjà triés
|
:param tab: tableau contenant différents élèments déjà triés
|
||||||
:param x: élèment recherché
|
:param x: élèment recherché
|
||||||
```
|
```
|
||||||
pass
|
a = 0 # on initialise la borne inférieure
|
||||||
|
b = len(tab) - 1 # borne supérieure
|
||||||
|
while a <= b: # tant que la borne inférieure est plus petite ou égale à la borne supérieure
|
||||||
|
m = (a + b) // 2 # on se place au milieu du tableau
|
||||||
|
if tab[m] == x: # si l'élément central est l'élément recherché
|
||||||
|
return True # alors on a terminé
|
||||||
|
elif tab[m] < x: # si l'élément central est plus petit que l'élément recherché
|
||||||
|
a = m + 1 # on déplace la borne minimum vers la sous-partie droite du tableau
|
||||||
|
else: #si l'élement central n'est ni plus petit ni égal à l'élément recherché, donc s'il est >...
|
||||||
|
b = m - 1 #on déplace la borne supérieure vers la sous-partie gauche
|
||||||
|
#si après tout ça on ne trouve pas l'élément...
|
||||||
|
return False
|
||||||
````
|
````
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Exercices :
|
Exercices :
|
||||||
|
|||||||
Reference in New Issue
Block a user