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 = 2k entiers. 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 k tableaux triés T1 , . . . , Tk , chacun avec n entiers. On veut les combiner en un seul tableau trié de kn éléments. 1. une stratégie possible est de fusionner T1 et 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 T de n entiers 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 × 2n avec 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