TD 5 Diviser pour Régner

publicité
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
Téléchargement