![](//s1.studylibfr.com/store/data-gzf/06156ea707c473489236e0485e037ea9/1/002777465.htmlex.zip/bg2.jpg)
PTSI - Cours d’informatique VII. Complexit´e d’un algorithme
Exercice 2. On rappelle l’algorithme de recherche de la premi`ere occurence d’une valeur dans un tableau :
Fonction: PremierIndice(v, t)
Action: D´etermination de la premi`ere occurrence d’une valeur vdans un tableau t
D´ebut
Pour kallant de 0`a longueur(t)−1faire
Si tk=valors
Renvoyer k
FinSi
FinPour
Renvoyer −1
Fin
On note nla longueur du tableau t.
1. D´eterminer en fonction de nle nombre de comparaisons effectu´ees dans le meilleur des cas.
2. D´eterminer en fonction de nle nombre de comparaisons effectu´ees dans le pire des cas.
2 Complexit´e en m´emoire d’un algorithme
D´efinition 2. On appelle complexit´e spatiale d’un algorithme la fonction qui associe `a la taille enti`ere n
de la donn´ee la quantit´e d’espace m´emoire n´ecessaire `a l’ex´ecution de l’algorithme.
Exercice 3. On consid`ere les algorithmes suivants :
Fonction: fib(n)
D´ebut
l←[1,1]
Pour kallant de 2`a nfaire
Ajout de lk−2+lk−1`a la liste l
FinPour
Renvoyer ln
Fin
Fonction: smartfib(n)
D´ebut
l←[1,1,2]
Pour kallant de 3`a nfaire
l0←l1
l1←l2
l2←l0+l1
FinPour
Renvoyer l2
Fin
1. D´eterminer la sortie de chacun des algorithmes (justifier au moyen d’un invariant de boucle).
2. D´eterminer en fonction de nla longueur maximale de la liste ldans chacun des algorithmes.
3 Classes de complexit´e
D´efinition 3. On consid`ere deux suites r´eelles (un)n∈Net (vn)n∈Npositives.
On dit que la suite (un)n∈Nest domin´ee par la suite (un)n∈Net on note un=O(vn)si il existe une
constante Ktelle qu’`a partir d’un certain rang un6Kvn.
Exemple 3. On a 2n+ 1 = O(n)car `a partir du rang 1,2n+ 1 63n.
D´efinition 4. On note Cla complexit´e temporelle d’un algorithme dont la taille de la donn´ee est n, on
d´efinit les classes de complexit´e :
– temps constant : C(n) = O(1).
– temps logarithmique : C(n) = O(ln n).
– temps lin´eaire : C(n) = O(n).
– temps quadratique : C(n) = O(n2).
– temps polynˆomial : C(n) = O(nα).
– temps exponentiel : C(n) = O(αn).
Exemple 4. L’algorithme de recherche de la premi`ere ocurrence d’une valeur dans un tableau est en temps
lin´eaire.
Exercice 4. D´eterminer en fonction de nles classes de complexit´e des fonctions pow et fastpow de l’exer-
cice 1.
www.emmanuelmorand.net 2/6 PTSI1516CoursInfo07