TD 5 : diviser pour régner Licence 3 Info et Math/Info
TD 5
Diviser pour Régner
Exercice 1 On veut trouver l’élément maximum dans un tableau de n= 2kentiers. Donner
un algorithme diviser pour régner qui trouve le maximum. Combien fait-il de comparaisons
exactement ? Est-ce meilleur que l’algorithme naïf ?
Exercice 2 On veut maintenant trouver le minimum et le maximum d’un tableau de n= 2k
d’entiers. Donner un algorithme diviser pour régner pour ce problème qui effectue 3/2n
comparaisons exactement. Comment se compare-t-il à l’algorithme naïf ?
Exercice 3 Supposons qu’on ait ktableaux triés T1, . . . , Tk, chacun avec nentiers. On veut
les combiner en un seul tableau trié de kn éléments.
1. une stratégie possible est de fusionner T1et T2, puis le résultat de la fusion avec T3,
etc ... quelle est le temps d’exécution asymptotique de cette stratégie ?
2. Donner une solution plus efficace en utilisant un algorithme diviser-pour-régner.
Exercice 4 On va travailler ici sur une variante de l’algorithme de comptage des inversions
dans un tableau Tde nentiers de 0àn−1. On dira qu’une inversion (i, j)est signifiante
si T[i]>2T[j]. Donner un algorithme efficace pour compter les inversions signifiantes de T.
Exercice 5 On veut couvrir une grille de taille 2n×2navec des pièces en forme de L (3
carrés). On suppose qu’il existe exactement un trou dans la grille qu’on ne doit pas couvrir.
Donner un algorithme diviser pour régner pour couvrir la grille.
1