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(n1) + T(n2) + 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
Exercice 5) D´eterminer un algorithme qui teste si un tableau de taille nest un “tableau de permutation
(i.e. tous les ´el´ements sont distincts et compris entre 1 et n).
1. Donner un premier algorithme nıf qui soit quadratique.
2. Donner un second algorithme lin´eaire utilisant un tableau auxiliaire.
Exercice 6) On veut calculer les termes de la suite (un)nNd´efinie par :
u0= 1 un=un1
1+un2
2+...+u0
n
Voici deux programmes qui calculent la valeur de un. Le premier est r´ecursif :
procedure U REC(n : entier);
si n=0alors
rendre 1;
sinon
soit s=0dans
pour kde 1`
anpas 1faire
s := s + U REC(n-k)/k;
finpour
rendre s;
finsi
finUREC;
Le second est it´eratif :
procedure U ITER(n : entier);
soit v = tableau[0..n]de 0dans
v.(0) := 1 ;
pour ide 1`
anpas 1faire
pour jde 1`
aipas 1faire
v.(i) := v.(i) + v.(i-k)/k;
finpour
finpour
rendre v.(n);
finUITER;
Comparer la complexit´e de ces algorithmes.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !