• Aucun résultat trouvé

Td corrigé Devoir 1 automne 2005; 8INF805 pdf

N/A
N/A
Protected

Academic year: 2022

Partager "Td corrigé Devoir 1 automne 2005; 8INF805 pdf"

Copied!
1
0
0

Texte intégral

(1)

DIM, UQAC Lundi 24 septembre 2007.

8INF805

Devoir 1

À rendre au plus tard le 11 octobre

avant 18h45 (en classe) ou ma boite aux lettres

Exercice 1 (20pts): Considérons l’expression ci-dessous qui détermine les coefficients de (1x)n, où n

m

1 .

 



 

 

 

 



 

 

autrement m n m n nm m m n

1 , 11 ,1

0,1

1. Écrivez le pseudo-code de l’algorithme implantant d’une manière récursive l’expression ci-dessus.

2. Déterminez la complexité temporelle de cet algorithme dans le pire cas.

3. Déterminez la complexité spatiale de cet algorithme.

4. Donnez la raison principale de l’inefficacité de votre algorithme.

5. Écrire une version itérative (c’est-à-dire non récursive) de l’algorithme donné en 1 et dont la complexité spatiale doit être en O(n). Quelle est la complexité temporelle de votre algorithme.

N.B : Pour la résolution de la relation de récurrence, trouvée en 2, pour les grandes valeurs de n, vous pourriez supposer que (n-1)/2  n/2 –1 et n n –1.

Exercice 2 (15pts) : Soit fait l’algorithme suivant : void mystere (int *A, int k) {

if (k != 1) { mystere(k-1);

int i= k-1; int temp = A[k];

while (i <= 1) && (A[i] < temp) {

1

(2)

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

i = i-1; } } // fin du if

} // fin de la fonction mystere 1. que fait cet algorithme.

2. déterminer sa complexité temporelle dans le pire cas et le cas moyen pour k = n.

3. quelle est la taille de la pile dans le pire cas pour k = n.

Exercice 3 (15pts): Soit un tableau de n éléments tous distincts et compris entre 0 et n-1. Écrire un algorithme qui fait le tri de ce tableau en O(n). L’introduction d’un autre tableau, autre que celui qui contient les entiers à trier, n’est pas permise.

Exercice 4 (15pts) : Le nombre moyen de cases accédées dans une table de hachage, lors d’une recherche fructueuse et non fructueuse, est donnée, respectivement, par les équations suivantes

2 / ) 1 (

2 / 1

n n

U S

où  représente le taux de remplissage n/m ; n étant le nombre d’éléments dans la table et m la dimension de la table. On suppose que la fonction de hachage est celle de la division et qu’au plus 81 éléments sont utilisés dans cette table. Quel diviseur utiliser si on voulait que Sn 4 et Un 2.

Exercice 5(15pts): On considère une table de hachage de m éléments en adressage ouvert.

1. Insérer dans une table les éléments 10, 22, 31, 4, 15, 28, 17, 88 et 59 avec m = 11, en utilisant la fonction de hachage par division et, en cas de collisions, la fonction de hachage linéaire.

2. La méthode dite de hachage quadratique utilise la suite d’essais suivante :

Pour i1,hi(x)h(x)(i1)2h(x)est une fonction de hachage uniforme sur {0,...,m1}.

a. Montrer que le calcul d’un carré peut être évité en utilisant les relations de récurrence suivantes pour i 1:

hi1(x)hi(x)di ; di1 di 2;

avec : h1(x)h(x) et d1 1.

b. Montrer que si m est un nombre premier, alors la suite des essais successifs balaie au moins la moitié du tableau.

Exercice 6 (10pts): Soit une

nn

S-matrice, avec

n

impair et où, comme illustré ci-dessous, tous les termes autres que ceux de la ligne 1,

n

,1n/2, la moitié du haut de la colonne 1 et la moitié du bas de la colonne

n

sont tous égaux à zéro. Une S-matrice peut être implémentée, d’une manière compacte, dans un tableau à une dimension en y stockant en premier les lignes de S dans l’ordre 1, 1n/2 et

n

. Ensuite, de haut en bas, le reste des éléments de la colonne 1, et le reste des éléments de la colonne

n

.

x x x x x x x x x

x

x zero

x x x x x x x x x x zero x

2

(3)

x x x x x x x x x

a. Donner la représentation compacte sur un exemple d’une matrice de dimension 5 par 5.

b. Écrire une fonction get(i,j) qui retourne la valeur de S[i][j] en supposant que la S-matrice est implémentée par un tableau à une seule dimension.

Exercice 7 (10pts) : Soit une table de stockage à qui est allouée une zone tableau en mémoire centrale. On suppose que, quand un élément est inséré dans une table pleine, le système peut agrandir cette table en allouant une nouvelle table avec plus d'espace et copie les éléments de l'ancienne table vers la nouvelle table. Une manière de procéder est d'allouer une nouvelle table ayant un espace deux fois plus grand que l'ancienne table. Si seulement on ne faisait que des insertions, le facteur de remplissage sera toujours1/2, et donc la quantité d’espace perdu ne dépasse pas la moitié de l'espace total de la table.

Dans le pseudo-code donné ci-dessous, on suppose que num(T) représente le nombre d'éléments effectif qu'il y a dans la table T, et size(T) est la dimension totale de cette table. Le pseudo-code pour effectuer une insertion est donc comme suit:

void Inserer(T,x){

1. if (size(T) = =0){

2. allouer un espace pour T;

3. size(T) = 1;}

4. if (num(T) = = size(T)){

5. allouer une nouvelle table N avec 2size(T) d'espace 6. insérer les éléments de T dans la nouvelle table N;

7. libérer(T);

8. T = N;

9. size(T) = 2size(T);}

10. insérer x dans T;

11. num(T) = num(T) + 1;}

1. Si la fonction potentielle est 2num(T)-size(T), déterminer la complexité amortie de l’opération d’insertion à l’aide de la méthode des potentiels.

2. On suppose que s’il s’agit d’une suppression, l’algorithme ci-dessus divise par deux la table quand la table est à moitié pleine. Supposons que n opérations successives d’insertions et suppressions sont effectuées sur cette table. Que pourriez-vous dire de la complexité amortie d’une opération d’insertion ou de suppression.

3

Références

Documents relatifs

 Pour que l’image formée soit nette, on effectue une accommodation / mise au point sur l’appareil photographique..  Pour que l’image formée soit nette, l’œil effectue

[r]

Les travaux d’atténuation et de réhabilitation réalisés par le Titulaire sont soumis aux inspections effectuées par la Direction chargée de la Protection

Ainsi, le spectre d'une étoile obtenu depuis la surface de la Terre présente des raies noires supplémentaires, dues essentiellement aux molécules de dioxygène et d'eau présentes

On suppose que, quand un ´ el´ ement est ins´ er´ e dans une table pleine, le syst` eme peut agrandir cette table en allouant une nouvelle table avec plus d’espace et copie les ´

*Les rubriques relatives aux signes conventionnels et abréviations qui ne sont utilisées que sur les cartes établies selon les normes nationales françaises sont marquées par

De la cheminée ne jaillit pas la fumée, on lui demande alors d’aller à la base de la cheminée, voir s’il peut éventuellement se démener pour ouvrir le passage, pour « faire

Donc après un CLRWDT , il y aura un reset du microcôntroleur au bout de 18 ms si le prescaler n’est pas utilisé ou de 18 ms x valeur du prescaler si le bit PSA du registre OPTION