#Implémenter un algoruthme de recherche par dichotomie en utilisant la récusrsion
#Limite : le nombre à trouver ne doit pas dépasser la maximum de la liste
#La liste est bien évidememnt ordonnée, elle peut contenir des trous, dans ce cas le nombre peut
#ne pas être présent

def dichotomie(lnb,clef, iDebut, iFin):
    if iDebut > iFin:
        #On s'arrête si l'index de debut coincide avec l'index de fin, dasn ce cas le nombre mystere n'est
        #pas dans la liste
        return False
    milieu = (iDebut + iFin) // 2
    if clef == lnb[milieu]:
        return True
    else :
        if clef < lnb[milieu]:
            return dichotomie(lnb,clef, iDebut, milieu - 1)
        if clef > lnb[milieu]:
            return dichotomie(lnb, clef, milieu + 1, iFin)
   

def recherche_dichotomique(nbMystere):
    tab=[]
    for i in range(10000):
        tab.append(i+1)
    finTab=len(tab)
    if nbMystere > tab[finTab -1]:
        print("Le nombre doit etre inférieur au nombre max de la lsite")
    elif dichotomie(tab, nbMystere, 0, finTab):
        print("trouve")
    else :
        print("le nombre n'est pas dans la liste")

        


