IF111 - Algorithmique et structures de donn´ees-EI2
Exercice 1
Soit Tun tableau d’entiers de taille n, le rang d’une case ide Test d´efinie comme la somme des
valeurs des cases de i`a nde 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´e, 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´ecurrence correspondante au nombre d’additions faites par l’algorithme sur un
tableau de taille n. R´esoudre la r´ecurrence avec la M´ethode iterative.
Exercice 2
Soit E une suite de n´el´ements rang´es dans un tableau E[1..n]. On dit qu’un ´el´ement x∈Eest
majoritaire si le cardinal de l’ensemble Ex={y∈Etel que y=x}est strictement plus de n
2. On
supposera que nest une puissance de 2. On suppose que la seule op´eration qu’on sait effectuer
sur les ´el´ements du tableau est de lire la valeur d’un ´el´ement et de v´erifier si deux ´el´ements sont
´egaux ou non.
1. ´
Ecrire un algorithme it´eratif pour v´erifier si Eposs`ede un ´el´ement majoritaire. L’algorithme
retourne la couple (x, cx) si xest l’ ´el´ement majoritaire avec cxoccurrences et la couple
(−,0) autrement.
Quelle est le nombre de comparaisons `a faire dans le pire des cas?
2. En s’appuyant sur la technique diviser pour regner, donner un algorithme r´ecursif bas´e sur un
d´ecoupage de Een deux sous-tableaux de mˆeme taille. L’algorithme Majoritaire(E, i, j) re-
tourne la couple (x, cx) si xest l’ ´el´ement majoritaire avec cxoccurrences 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 xdans
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) ´ex´ecute un nombre de comparaisons lin´eaire dans la taille
du tableau E[i, j].
gruppo 1 deve ancora calcolare la complessit`a e la recurrence.
Exercice 3
R´esoudre les r´ecurrences suivantes en appliquant la m´ethode g´en´erale.
1. T(n) = 4T(n/2) + n,T(1) = 1
2. T(n) = 4T(n/2) + n2,T(1) = 1
1