EI2 - LaBRI

publicité
IF111 - Algorithmique et structures de données-EI2
Exercice 1
Soit T un tableau d’entiers de taille n, le rang d’une case i de T est définie comme la somme des
valeurs des cases de i à n de T . Par exemple, soit T = {3, 5, 2}, le rang de T [1] = 10, le rang de
T [2] = 7 et le rang de T [3] = 2.
1. Ecrire un algorithme recursif qui pour un tableau donné, modifie chaque case du tableau
avec le rang correspondant. Par exemple, pour le tableau T = {3, 5, 2} on veut obtenir le
tableau T = {10, 7, 2}.
2. Ecrire la récurrence correspondante au nombre d’additions faites par l’algorithme sur un
tableau de taille n. Résoudre la récurrence avec la Méthode iterative.
Exercice 2
Soit E une suite de n éléments rangés dans un tableau E[1..n]. On dit qu’un élément x ∈ E est
majoritaire si le cardinal de l’ensemble Ex ={y ∈ E tel que y = x} est strictement plus de n2 . On
supposera que n est une puissance de 2. On suppose que la seule opération qu’on sait effectuer
sur les éléments du tableau est de lire la valeur d’un élément et de vérifier si deux éléments sont
égaux ou non.
1. Écrire un algorithme itératif pour vérifier si E possède un élément majoritaire. L’algorithme
retourne la couple (x, cx ) si x est l’ élément majoritaire avec cx occurrences et la couple
(−, 0) autrement.
Quelle est le nombre de comparaisons à faire dans le pire des cas?
2. En s’appuyant sur la technique diviser pour regner, donner un algorithme récursif basé sur un
découpage de E en deux sous-tableaux de même taille. L’algorithme M ajoritaire(E, i, j) retourne la couple (x, cx ) si x est l’ élément majoritaire avec cx occurrences dans le (sous)tableau
E[i..j] et la couple (−, 0) autrement. L’appel initial sera M ajoritaire(E, 1, n). L’algorithme
utilisera un algorithme Occurence(E, x, i, j) qui retourne le nombre d’occurence de x dans
le (sous)tableau E[i, j].
Donner le nombre de comparaisons faites par l’algorithme pour un tableau de taille n.
L’algorithme Occurence(E, x, i, j) éxécute un nombre de comparaisons linéaire dans la taille
du tableau E[i, j].
gruppo 1 deve ancora calcolare la complessità e la recurrence.
Exercice 3
Résoudre les récurrences suivantes en appliquant la méthode générale.
1. T (n) = 4T (n/2) + n, T (1) = 1
2. T (n) = 4T (n/2) + n2 , T (1) = 1
1
Exercice 4
Appliquer l’algorithme de tri par fusion pour trier la séquence E, X, A, M, P, L, E en ordre
alphabetique.
2
Téléchargement