Ecole Nationale Supérieure Polytechnique
Département de Génie Informatique
BP 8390 Yaoundé
TD ALGORITHMIQUE - 3GI
Récursivité et Complexité
Exercice 1
1. On donne l’équation suivante : T ( 1 ) =1 et ∀ n>1 ,T ( n )=2 ×T ( n−1 )+1. Démontrer par
récurrence que T ( n )=2n−1 pour tout n ≥ 1
2. Résoudre par substitution l’équation T ( 1 ) =1, T ( n )=T ( n2 )+ log (n)
Exercice 2.
Le tri par insertion peut être exprimé sous la forme d’une procédure récursive de la
manière suivante. Pour trier A[1 ... n], on trie récursivement A[1 ... n − 1] puis on
insère A[n] dans le tableau trié A[1 ... n-1].
- Proposer une version de cet algorithme.
- Écrire une récurrence pour le temps d’exécution de cette version récursive du tri par
insertion et donner sa complexité.
Exercice 3
En reprenant le problème de la recherche dans une séquence, observez que, si la
séquence est triée, on peut comparer le milieu de la séquence avec l’élément
recherché et supprimer la moitié de la séquence pour la suite des opérations. La
recherche dichotomique est un algorithme qui répète cette procédure, en divisant
par deux à chaque fois la taille de la partie restante de la séquence. Écrire le pseudo
code récursif, de la recherche dichotomique. Expliquer pourquoi le temps d’exécution
de la recherche dichotomique, dans le cas le plus défavorable, est O(lg n).
Exercice 4.
3.1. Montrer que : f =Θ( g )⇒ f =Ο ( g )
3.2. Montrer que : f =Ο( g )∧f =Ω( g )⇒ f =Θ(g )
Exercice 5
Calculer la complexité f(n) de la fonction suivante
Procedure MYSTERY ;
var i,j,k : integer;
Begin
for i:= 1 to n-1 do
for j:=i+1 to n do
for k:=1 to j do {instruction}
end MYSTERY;
On supposera que instruction s’exécute en un temps constant c. Préciser la mesure
de la complexité choisie. En déduire l’ordre asymptotique de f(n).
Exercice 6.
Démontrer :
5.1. f =Ο( g )⇒ λf =Ο( g )
5.2. f =Θ( g )⇒ λf =Θ( g )
Exercice 7
Donner les rangs n pour lesquels l’une des deux quantités 2 nnou n2 n est la plus grande.