Skip to content
Snippets Groups Projects
Select Git revision
  • 5dbc3e3559712103f0b87b641bfaebecec0e6cee
  • master default protected
2 results

recherche-dichotomie.py

Blame
  • user avatar
    Romain Vuillemot authored
    5c533257
    History
    recherche-dichotomie.py 1.73 KiB
    from random import randint;
    
    def dichotomie(liste, val):
        print("La liste reçue : ",liste, ' de taille ', len(liste))
        if liste==[] : return False
        m=len(liste)//2
        print('\ton compare liste[',m,']=', liste[m], ' et ', val) 
        if liste[m] == val: return True
        elif liste[m] > val: return dichotomie(liste[:m], val)     # dans liste[:m], liste[m] n'est pas inclu.
        else: return dichotomie(liste[m+1:], val)                  # dans liste[X:],  liste[X]  est  inclu.
     
    ll=[randint(1,50) for i in range(10)]  
    ll.sort()
    x=int(input("chercher une valeur entre 1 et 50 dans la liste " + repr(ll) + " ? : "))
    print("La présence de  ", x, " dans la liste : ", ll, dichotomie(ll, x))    
    
    """  
    # Et un cas de succès : 
    chercher une valeur entre 1 et 50 dans la liste [4, 7, 10, 14, 19, 27, 31, 32, 35, 47] ? : 32
    La liste reçue :  [4, 7, 10, 14, 19, 27, 31, 32, 35, 47]  de taille  10
    on compare liste[ 5 ]= 27  et  32
    La liste reçue :  [31, 32, 35, 47]  de taille  4
    on compare liste[ 2 ]= 35  et  32
    La liste reçue :  [31, 32]  de taille  2
    on compare liste[ 1 ]= 32  et  32
    La présence de   32  dans la liste :  [4, 7, 10, 14, 19, 27, 31, 32, 35, 47] True
    
    # Et un cas d'échec :
    chercher une valeur entre 1 et 50 dans la liste [22, 23, 30, 33, 37, 42, 42, 43, 47, 49] ? : 35
    La liste reçue :  [22, 23, 30, 33, 37, 42, 42, 43, 47, 49]  de taille  10
    on compare liste[ 5 ]= 42  et  35
    La liste reçue :  [22, 23, 30, 33, 37]  de taille  5
    on compare liste[ 2 ]= 30  et  35
    La liste reçue :  [33, 37]  de taille  2
    on compare liste[ 1 ]= 37  et  35
    La liste reçue :  [33]  de taille  1
    on compare liste[ 0 ]= 33  et  35
    La liste reçue :  []  de taille  0
    La présence de   35  dans la liste :  [22, 23, 30, 33, 37, 42, 42, 43, 47, 49] False
    """