voici une fonction qui effectue une recherche dichotomique sur une liste d element exemple la liste ['a','b','c','d','e','f','g'] etc nb il faut que la liste soit trie le recherche dichotomique n est efficace qu cette condition
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
 
def dicho(chaine,recherche):
    """recherche un element dans une liste d element"""
    i=len(chaine)
    flag=False
    while(i!=1):
        i/=2
        if recherche>chaine[i]:
            if recherche==chaine[i]:
                flag= True
 
            else:
                chaine=chaine[i:]
                i=len(chaine)
                ##print chaine
        else:
            if recherche==chaine[i]:
                flag=True
            else:
                chaine=chaine[:i]
                i=len(chaine)
                ##print chaine
    return flag
##deux  exemples dicho(list("chaine"),"a");dicho([1,2,3,4,5,6],9)