La première dichotomie. 161P du livre d'images d'algorithme écrit en langage C en python à votre manière. Cela ne fonctionnera pas si vous entrez un numéro qui ne figure pas dans la liste. On suppose que les nombres de la liste sont classés par ordre croissant.
nibun.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
x = [1, 8, 14, 23, 44, 55, 67, 88, 103, 146]
print x
print "Entrez le numéro que vous souhaitez trouver"
i = int(raw_input())
low = 0
high = len(x)
#t est le nombre du milieu
t = (low + high) / 2
#Rechercher jusqu'à ce que la limite inférieure inférieure de la recherche devienne la limite supérieure haute
#Lorsque bas atteint haut, le nombre n'a pas été trouvé
while (low<=high):
if (i==x[t]):
break
elif (i > x[t]):
low = t + 1
elif (i < x[t]):
high = t - 1
t = (low + high) / 2
if (i==x[t]):
print str(t + 1) + "Est dans le second"
else:
print "Il n'y en a pas"
Recommended Posts