Académique Documents
Professionnel Documents
Culture Documents
Solution :
1. La fonction retourne Vrai s'il existe un indice i dont A[i]=i, Faux sinon.
2. Equation de récurrence : C(n) = 2 C(n/2) + cste. => Complexité O(n) (Théorème n°2 )
Solution :
3. Boolean exist2elt(A: Tableau , x : entier)
Debut
Pour i=1 à A.length faire
Pour j=i+1 à A.length faire
Si (A[i] + A[j] == x) alors
return vrai
FinSi
FinPour
FinPour
return faux
Fin.
Complexité : O(n2)
4. Un algorithme de complexité O(n)
Idée : Nous utilisons deux indices min et max qui indique le minimum et le
maximum dans A. Initialement, min = A.length et max = 1.
Si A[min]+A[max] = x, alors l'algorithme retourne vrai.
Si A[min]+A[max] > x, alors il n'y aura aucune solution utilisant
A[max]. Donc, nous pouvons oublier l'élément A[max] et continuer la
recherche dans A dans l'intervalle [max+1, min]
Si A[min]+A[max] < x, alors il n'y aura aucune solution utilisant
A[min]. Donc, nous pouvons oublier l'élément A[min] et continuer la
recherche dans A dans l'intervalle [max, min-1]
Boolean exist2elt(A: Tableau , x : entier)
Debut
min, max : Entier;
min = A.length
max = 1
TantQue(min != max) faire
Si (A[min]+A[max] == x) alors
return vrai
Sinon
Si (A[min]+A[max] > x) alors
max++
Sinon //A[min]+A[max] < x
min--
FinSi
FinSi
FinTantQue
return faux
Fin
Remarquons, à chaque itération, soit max est incrémenté, soit le min est
décrémenté. Ainsi, la boucle sera exécutée au plus n-1 fois.
Département Mathématiques et Informatique Page | 2/4 ﻓﯿ ﻖﺑ ﺎﻟﺘﻮ
Université Yahia Fares de Médéa Mardi 10 Janvier 2017
1ère année MATSER (L.M.D) 10 :30 -12 :00
Option : ISTW Algorithmiques Avancés Durée : 01h :30min
et Complexité
Corrigé de l'EFS 1er Semestre