Université Bordeaux 2 Licence MASS/Scico 5ème semestre (2008/2009) Algorithmes et structures de données avancées : TD 3 Jeux de yams (Algorithmes, tableaux multidimensionnels, temps d’exécution T(n)) Exercice 3.1 Matrice d’identité Considérer la matrice d’identité suivante 1 0 A= ... 0 : 0 1 ... 0 ... 0 ... 0 , ... ... ... 1 1. Ebaucher un structogramme pour un algorithme qui crée une matrice carré d’identité de taille n. 2. Quel est le dégré du plus grand polynome dans la fonction T (n) de votre algorithme (dans le pire des cas). Exercice 3.2 Addition de matrices Considérer les deux matrices carrées A et B de taille n : a11 a12 ... a1n b11 b12 a21 a22 ... a2n b21 b22 ,B = A= ... ... ... ... ... ... an1 an2 ... ann bn1 bn2 L’addition de ces deux matrices donne la matrice c11 c12 ... c21 c22 ... C= ... ... ... cn1 cn2 ... avec cij = aij + bij ... b1n ... b2n , ... ... ... bnn C quadratique de taille n: c1n c2n ... cnn ∀i, ∀j 1. Ebaucher un structogramme pour un algorithme qui effectue l’addition des deux matrices A et B et stocke les résultats en C. 2. Quel est le dégré du plus grand polynome dans la fonction T (n) de votre algorithme (dans le pire des cas). Exercice 3.3 Tableau à une dimension Vous disposez d’un tableau numériques de n entrées. 1. Affecter chaque entrée de ce tableau numériques avec des valeurs entières aléatoires entre 1 et 1000. 2. Ecrire le structogramme d’un algorithme qui décide s’il y a une valeur stocké dans la variable valeur dans le tableau, et qui affiche la réponse. 3. Quel est le dégré du plus grand polynome dans la fonction T (n) de votre algorithme (dans le pire des cas, c-à-d que la valeur n’existe pas dans le tableau). 4. Supposez maintenenant que votre tableau numériques est trié par ordre croissant. 5. Ecrire le structogramme d’un algorithme qui décide s’il y a une valeur stocké dans la variable valeur dans ce tableau trié, et qui affiche la réponse. 6. Qu’en déduisez-vous pour la fonction T (n) de votre algorithme (dans le pire des cas, c-à-d que la valeur n’existe pas dans le tableau)? Exercice 3.4 Multiplication de matrices La multiplication des deux matrices carrées de taille n donne la matrice C quadratique de taille n: c11 c12 ... c1n c21 c22 ... c2n C= ... ... ... ... cn1 cn2 ... cnn avec cij = n X aik bkj ∀i, ∀j k=1 1. et 2. 3. Ebaucher un structogramme pour un qui effectue la multiplication des deux matrices A B et stocke les résultats en C. Ecrire l’ algorithme. Quel est le dégré du plus grand polynome dans la fonction T (n) de votre algorithme ? 2