• Aucun résultat trouvé

S´ erie 3: analyse des algorithmes

N/A
N/A
Protected

Academic year: 2022

Partager "S´ erie 3: analyse des algorithmes"

Copied!
3
0
0

Texte intégral

(1)

UQAC Jeudi 29 Janvier 2004.

Structures de donn´ees et algorithmes 8SIF101

S´ erie 3: analyse des algorithmes

Exo.1: Montrer que pour toute constante r´eelle a et b, b>0, nous avons (n+a)b =O(nb)

Cette relation est-elle vraie pour les notations Θ et Ω?

Exo.2: Montrer que pour toute constante r´eelleai et entierxpositif, nous avons

n

X

i=0

aixi =O(xn)

Exo.3: Trouver l’odre des fonctions suivantes:

1. n2+ 2n; logn2 2. log 3n;n+ 1/n 3. n+ logn

Exo.4: Parmi les relations suivantes, quelles sont celles qui sont correctes.

1. O(1) =O(10);O(1) = 10;αn+1=O(αn), α´etant une constante

2. (n+ 1)! =O(n!),2n=O(n!), n! =O(2n); lognn=O(logn!);nn=O(n!)

Exo.5: Quelle la valeur dek`a la sortie de la boucle de la portion de programme ci-dessous:

k = 1;

while (k<= n) k = k * 2;

En d´eduire la complexit´e temporelle de ce programme.

Exo.6: Calculer les complexit´es temporelles en fonction de la variablendes portions de programmes ci-dessous.

Program 1:

d = 1;

while (d*d<= n) d = d * 2;

(2)

Program 2:

d = 1;

while (d*d<= n) d = d * 2 + 1;

Program 3:

for (i=0; i<n; i++) for (j=0; j<n; j++)

s = s + 1;

Program 4:

d = 1;

while (d*d<= n){

j = 1;

while (j<= n) d = d * 2;

d = 2*d + 1;

}

Exo.7: D’un point de vue du nombre d’op´erations, quelle est la diff´erence entre les deux portions de programmes suivants:

version1: version2:

som = 0; som = 0; t = n-1;

for(i=1; i<n-1; i++) for(i=1; i<t; i++)

som = som +1; som = som + 1;

Exo. 8: ´Evaluer d’un point de vue du nombre d’acc´es au tableau A les deux portions de programmes ci-dessous.

version1: version2:

aux = A[1];

for(i=1; i<n-1; i++) for(i=1; i<t; i++)

som = A[1] + A[i]; som = aux + A[i];

Exo.9: Que font les fonctions r´ecursives suivantes:

1. long mystere1( int n){

if (n == 0) return 0;

return (mystere1(n-1) + n*n);

}

2. double mystere2(double b, int n){

if (n == 0) return 1;

return (1+ b*mystere1(b,n-1));

}

2

(3)

3. bool mystere3(string s, int gauche, int droit){

if (right<= left) // la base return true;

else if (s[gauche] != s[droit]) // base return false;

else

return mystere3(s, gauche + 1, droit - 1);

}

4. bool mystere4(double a[], int n){

if (n == 1) return a[0];

int n1 = n/2;

int n2 = n - n1;

double m1 = mystere4(a,n1);

double m2 = mystere(a+n1,n2);

return (m1>m2 ? m1: m2);

}

Exo.10: D´eterminer pour chacune de ces fonctions r´ecursives leur complexit´e temporelle. Ensuite, d´eterminer pour chacune d’elle la taille de la pile g´en´er´ee.

3

Références

Documents relatifs

[r]

Id´ee de queue : comme une file d’attente, objets rang´es un apr`es l’autre, on peut enfiler `a la fin ou d´efiler au d´ebut. op´erations : « enfiler » ( enqueue ) et «

La biblioth` eque municipal s’int´ eresse aux nombres de livres emprunt´ es par ses lecteurs. Elle obtient deux s´ eries statiques, une pour les enfants et une pour

[r]

Parmi les trois formules suivantes, d´ eterminer toutes celles que l’on peut ´ ecrire dans la cellule G4 et qui permettent de connaˆıtre par recopie vers le bas les salaires cumul´

Leurs coˆ uts unitaires sont respectivement de 20 euros et

Or la s´ erie de Riemann de terme g´ en´ eral 1. n α

Le th´ eor` eme de d´ erivation des s´ eries de fonctions permet de conclure que f est une fonction d´ erivable sur