Universit´e Nice Sophia Antipolis Licence Informatique 2
Outils Formels pour l’Informatique 2016–2017
TD n˚7
Complexit´e
Exercice 1)
1. Prouver que n2+n=O(n2).
2. Donner l’ordre de grandeur des expressions suivantes :
(a) n2+ 3n+ 1
n+ 1
(b) nlog(n) + n2+ log(n)2
n+ 1
3. Si f(n)en une fonction en O(n), les affirmations suivantes sont-elles vraies?
(a) (f(n))2=O(n2);
(b) 2f(n)=O(2n).
Exercice 2)Ecrire un algorithme pour calculer pn, qui soit de complexit´e O(log2n)(indication : consid´erer
n´ecrit en binaire).
Exercice 3) On consid`ere la relation de r´ecurrence :
T(n) = T(n−1) + T(n−2) + k
o`u kest une constante.
1. Donner un exemple d’algorithme dont le temps d’ex´ecution v´erifie cette relation.
2. Minorer la complexit´e d’un tel algorithme.
Exercice 4) Tri `
a bulle. Soient nnombres rang´es dans un tableau A[1..n]. Calculer la complexit´e de
l’algorithme suivant, dit tri par ´echange ou tri `
a bulle, qui remet les ´el´ements de Adans l’ordre croissant
de leur valeur :
procedure BULLE(n : entier ; A : tableau[1..n]de entiers);
pour ide n-1 `
a1faire pas -1
pour jde 1`
aifaire
si A[j+1] <A[j] alors
ech := A[j];
A[j] := A[j+1];
A[j+1] := ech;
finsi
finpour
finpour
finBULLE;
1