Dichotomie

Categories:Leçons

https://colab.research.google.com/drive/1ByJPMTl8Hk0yViq_3ZgdeVXcAgN3PbBQ?usp=sharing

Recherche Séquentielle :

Ecrivons une fonction qui recherche une valeur val dans un tableau tab. La fonction doit renvoyer True si la valeur est présente False si elle est absente.

def rechercher(tab,val):
  for x in tab:
    if val==x:
      return True
  return False
tab=[i for i in range(100000001)]

Recherche dichotomique

def dichotomie(tab,val):
    debut = 0
    fin = len(tab) - 1
    while debut <= fin:
        m = (debut + fin) // 2
        if val== tab[m]:
            return True
        if val > tab[m]:
            debut = m + 1
        else:
            fin = m - 1
    return False

Comparaison

import time

tab=[i for i in range(100000000)]

debut1=time.time()
rechercher(tab,10000000)
duree1=time.time()-debut1
print(duree1)

debut2=time.time()
dichotomie(tab,10000000)
duree2=time.time()-debut2
print(duree2)

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *