Le code de la dichotomie est ci-dessous.
def binary_search(src, target_value):
result = False
lower_index = 0
higher_index = len(src)-1
while True:
dst = src[lower_index:higher_index+1]
medium_index = (lower_index + higher_index) // 2
if src[medium_index] == target_value:
result = True
break
if (higher_index - lower_index) == 1:
break
if target_value >= dst[medium_index]:
lower_index = medium_index
else:
higher_index = medium_index
return result
def main():
src = [1, 2, 3, 4, 5, 6] #Déjà trié
target_value = 4
if binary_search(src, target_value):
print('Found!')
else:
print('Not Found')
if __name__ == '__main__':
main()
Le résultat de l'exécution est le suivant.
Found!
Merci d'avoir lu jusqu'au bout. Revoyons-nous.
Recommended Posts