41 lines
861 B
Python
41 lines
861 B
Python
#!/usr/bin/env python
|
|
|
|
"""Cherche un entier x dans un tableau T de n entiers"""
|
|
|
|
|
|
def main() -> None:
|
|
x = 5
|
|
T = [5, 6, 3, 1, 2, 7, 9, 10]
|
|
n = len(T)
|
|
print(RechSeq(x, T, n))
|
|
print(RechDic(x, T, n))
|
|
|
|
|
|
def RechSeq(x : int, T : list[int], n : int) -> bool:
|
|
"""Selon le principe de la recherche séquentielle"""
|
|
|
|
if n == 0:
|
|
return False
|
|
elif x == T[n - 1]:
|
|
return True
|
|
else:
|
|
return RechSeq(x, T, n - 1)
|
|
|
|
|
|
def RechDic(x : int, T : list[int], n : int) -> bool:
|
|
"""Selon le principe de la recherche dichotomique"""
|
|
|
|
T.sort()
|
|
milieu = n // 2
|
|
if len(T) == 0:
|
|
return False
|
|
elif x == T[milieu]:
|
|
return True
|
|
elif x < T[milieu]:
|
|
return RechDic(x, T[:milieu], milieu)
|
|
else:
|
|
return RechDic(x, T[milieu:], n - milieu)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|