efrei/algorithmique/recursivite/recherche.algo

30 lines
842 B
Text
Raw Normal View History

Algorithme : Cherche un entier x dans un tableau T de n entiers
Début
// Selon le principe de la recherche séquentielle
Fonction RechSeq(x : int, T : tableau, n : int) : bool
Si n = 0
Retourner(Faux)
Sinon si x = T[n - 1]
Retourner(Vrai)
Sinon
Retourner(RechSeq(x, T, n - 1))
FinSi
FinFonction
// Selon le principe de la recherche dichotomique
Fonction RechDic(x : int, T : tableau, n : int) : bool
Trier(T)
milieu = n / 2
Si Longueur(T) = 0
Retourner(Faux)
Sinon si x = T[milieu]
Retourner(Vrai)
Sinon si x < T[milieu]
Retourner(RechDic(x, T[0 : milieu], milieu))
Sinon
Retourner(RechDic(x, T[milieu : n], n - milieu))
FinSi
FinFonction
Fin