• Aucun résultat trouvé

´ECOLE POLYTECHNIQUE F´ED ´ERALE DE LAUSANNE Sections d’Informatique et de Syst`emes de Communication S´erie d’exercices 9

N/A
N/A
Protected

Academic year: 2022

Partager "´ECOLE POLYTECHNIQUE F´ED ´ERALE DE LAUSANNE Sections d’Informatique et de Syst`emes de Communication S´erie d’exercices 9"

Copied!
2
0
0

Texte intégral

(1)

Algorithmique - Semestre d’Automne 2011/2012

ECOLE POLYTECHNIQUE F´´ ED ´ERALE DE LAUSANNE Sections d’Informatique et de Syst`emes de Communication

S´erie d’exercices 9 21 Nov. 2011

1. Application de QuickSort et HeapSort Voici une suite de 30 nombres:

23,29,84,15,58,19,81,17,48,15,36,49,91,26,89, 22,63,57,33,10,50,56,85,4,10,63,1,72,10,48.

a) Trier cette suite avec QuickSort (en prenant toujours comme pivot le dernier ´el´ement, comme dans le cours). S’il vous reste des sous-suites de≤5 ´el´ements `a trier, vous pouvez le faire `a la main.

b) Trier les quinze premiers ´el´ements ci-dessus avec HeapSort.

2. D´eg´en´erescence de QuickSort

Rappelons queQuickSort n´ecessite en moyenneO(NlogN) comparaisons si la permu- tation des cl´es est al´eatoire et uniform´ement choisie. N´eanmoins, il faut `aQuickSortΩ(N2) comparaisons dans le pire des cas.

Intuitivement, QuickSort aura une meilleure performance si le pivot choisi est plus proche de la m´ediane de la suite (pour qu’elle soit coup´ee en deux sous-suites de mˆeme taille lors de l’appel r´ecursif). Par contre, si le pivot se trouve parmi les plus grands (ou plus petits)

´el´ements de la suite, il faudra faire plus d’appels r´ecursifs, et donc plus de comparaisons. Le choix du pivot est donc crucial.

a) Si on choisit toujours comme pivot le dernier ´el´ement de la suite, montrer que pour tout N on peut trouver une suite de N ´el´ements pour laquelle QuickSort n´ecessite Ω(N2) comparaisons.

b) Consid´erons la strat´egie suivante: on prend comme pivot toujours la m´ediane des ´el´ements au d´ebut, au milieu et `a la fin. Puis on ´echange cet ´el´ement avec le dernier ´el´ement de la suite (si n´ecessaire), et on proc`ede ensuite comme dans le cours. (C’est la 3-median strategy.) Montrer que pour toutN on peut trouver une suite deN ´el´ements pour laquelle QuickSortn´ecessite Ω(N2) comparaisons.

3. Traverser des graphes Voici un graphe orient´e:

1

(2)

Algorithmique - Semestre d’Automne 2011/2012

1

3 2

4

5

6

7 8

9

10 11 12

a) Parcourir ce graphe avec la m´ethodeDepthFirstSearch, en commen¸cant au sommet 1.

b) Parcourir ce graphe avec la m´ethodeBreadthFirstSearch, en commen¸cant au sommet 1.

c) Modifier l’algorithmeBFSpour qu’il retourne pour chaque sommet sa distance par rapport

` a 1.

d) Modifiez l’algorithme AbstractTraversalpour qu’il compte aussi le nombre de som- mets qui sont atteignables depuis 1.

4. Priority Queues

a) Lesquelles des permutations de{1,2,3,4,5} r´esulteront, apr`es transformation en heap par BottomUpHeapCreate, en le tableau contenant 5,3,4,1,2, dans cet ordre?

b) Le crible d’Erastosth`ene est la proc´edure suivante pour trouver tous les nombres premiers de 1 `aN:

(a) ´Ecrire une liste des nombres 2,3,4, . . . , N.

(b) Prendre le plus petit nombre de la liste. L’enlever de la liste: C’est un premier. Biffer tous ses multiples de la liste.

(c) R´ep´eter l’´etape pr´ec´edente jusqu’`a ce qu’il ne reste plus rien `a faire.

Donner un algorithme efficace qui utilise un heap pour cr´eer un tableau des N pre- miers nombres premiers, similaire au crible d’ Erastosth`ene. Essayer d’´economiser la m´emoire vive afin d’obtenir un algorithme qui a besoin de moins de m´emoire vive que celui d’Erastosth`ene.

c) Donner un algorithme efficace pour ins´erer un ´el´ement dans un heap. (Le heap est repr´esent´e par un tableau.) Donner un algorithme efficace pour enlever un ´el´ement sp´ecifi´e par sa position dans le tableau d’un heap.

2

Références

Documents relatifs

c) Soit T un arbre binaire avec n sommets. Quelle est la plus petite hauteur que peut avoir T ? Quel est la plus grande hauteur que peut avoir T ?. d) Soit G un graphe non orient´e

On suppose qu’on nous donne deux tableaux A et B dont chaque entr´ee contient deux valeurs : x et h. Ces tableaux d´ecrivent les deux skylines qu’on veut combiner.. Algorithmique

ECOLE POLYTECHNIQUE F´ ´ ED ´ ERALE DE LAUSANNE Sections d’Informatique et de Syst`emes de Communication. S´ erie d’exercices 6

Nous voulons calculer le nombre moyen d’´echanges dont a besoin l’algorithme SelectionSort pour trier une suite de longueur N (Ici moyen veut dire la moyenne sur toutes les

b) Modifier l’algorithme de Dijkstra pour qu’il fournisse pour chaque sommet v le plus court chemin du sommet de d´epart s ` a v et l’ensemble des sommets qui font partie de

a) Si on augmente le poids de chaque arˆete de G par une constante c, est-ce que l’arbre T reste minimal? Justifiez votre r´eponse.. b) Si on diminue le poids de l’une des arˆetes de

, k m litt´eraux, determiner si cette formule est satisfaisable (C’est le probl`eme SAT). Quelle est la taille de l’input pour ce probl`eme ?. e) Montrer que ce probl`eme est

L’output attendu est donc un nombre naturel (et pour tout nombre naturel x il existe un input pour lequel x est l’output), l’ensemble des outputs possibles est donc l’ensemble de