• Aucun résultat trouvé

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

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 Srie d’exercices 8"

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

Srie d’exercices 8 14 Nov 2011

1. Le codage de Huffman

Lesquels des codes suivants ne sont pas des codes de Huffman (pour aucune fr´equence de lettres)?

(0,10,11), (00,01,10,110), (01,10).

2. Codes Huffman ternaires

a) G´en´eraliser l’algorithme de Huffman aux mots de codes ternaires (c’est-`a-dire aux mots de code utilisant les symboles 0, 1 et 2).

b) Donner un code de Huffman ternaire pour l’ensemble de fr´equences (451 ,452,453 ,454,455 ,456,457,458 ,459) c) Donner un code de Huffman ternaire et binaire pour l’ensemble de fr´equences (211 ,212,213,214,215,216) d) Calculer la longueur moyenne dans les deux cas.

3. Shell Sort

a) Utiliser l’algorithme ShellSort avec les incr´ements 2,1 pour ordonner la suite de cl´es (4,3,2,6,1,5). Combien d’´echanges ont ´et´e utilis´es?

b) Montrer que si une suite de longueur N est 2-tri´ee et 3-tri´ee alors on peut la trier en utilisant au plus N−1 mouvements.

4. Nombre moyen d’´echanges avec Selection Sort

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 inputs possibles, c’est-`a-dire toutes les permutations d’une suite de longueur N).

a) Supposons que N = 3. Nous avons donc une suite de 3 ´el´ements `a ordonner. Supposons que les cl´es valent 0,1 et 2. Pour chacune des 6 permuation possibles de ces 3 ´el´ements, combien faut-il `a SelectionSort d’´echanges pour ordonner la suite?

En supposant que chacune de ces permutations a la mˆeme probabilit´e, quel est le nombre moyen d’´echanges n´ecessaires?

b) Supposons maintenant queN est quelconque. L’algorithme fait N −1 it´erations (dans le programme la variableiva de 0 `a N−2).

1

(2)

Algorithmique - Semestre d’Automne 2011/2012

Pendant l’it´eration i il faudra faire un ´echange si et seulement si le i`eme ´el´ement de la suite n’est pas `a la bonne position. On voit aussi qu’au d´ebut de l’it´eration iles ´el´ements 0, . . . , i−1 sont tous `a la bonne place.

(i) Etant donn´e une permutation al´eatoire de 0, . . . , k−1, quelle est la probabilit´e que 0 soit `a la bonne place (c’est-`a-dire en premier)?

(ii) Montrer que le nombre moyen d’´echanges dont a besoin SelectionSort pour trier une suite `a N ´el´ements est ´egal `a

N −1

N +N −2

N −1 +. . .+2 3+ 1

2

5. Tri par ´echanges adjacents

Les algorithmes de tri ´el´ementaires se r´ealisent souvent en ´echangeant uniquement des

´el´ements adjacents (par exemple Bubble sort). Consid´erons la version alternative de Inser- tionSort suivante:

Call: InsertionSort(a)

Input: Suitea d’objets avec des cl´es ´etant des entiers.

Output: Transformation dea de sorte `a avoir a[i].key≤a[i+ 1].key pour 0≤i < N−1

1: for i= 1, . . . , N −1do

2: j←i−1

3: whilea[j].key > a[j+ 1].key etj≥0do

4: a[j+ 1]↔a[j]

5: j=j−1

a) Comparer cette version de l’algorithme `a la premi`ere version donn´ee dans le cours. Calculer le nombre d’´echanges et de comparaisons et comparer ces nombres `a la version du cours.

b) Soit σ une permutation al´eatoire des ´el´ements {1, . . . , N}. Montrer que ∀i∈ {1, . . . , N} et∀j ∈ {0, . . . ,⌊N/2⌋}on a:

P(|σ(i)−i|=j)≥ 1 N

(|σ(i)−i|repr´esente la distance entre la position deidans (1, . . . , N) et sa nouvelle position dans la permutation (σ(1), . . . , σ(N))).

c) En d´eduire que la moyenne sur tous les σ de |σ(i)−i|est sup´erieure ou ´egale `a N9, pour tout i∈ {1, . . . , N} fix´e, etN assez grand.

d) Conclure du point pr´ec´edent que tout algorithme de tri qui se limite `a ´echanger des

´el´ements adjacents est Ω(N2) en moyenne.

2

Références

Documents relatifs

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

Soit x le nombre de 1’s au dessus de la diagonale et y le nombre de 1’s en dessous de la diagonale (donc x + y = nd). Or si n et d sont impairs alors nd sera aussi impair. On en

b) Supposons que nous avons un graphe avec deux c´el´ebrit´es (que nous appelons les sommets i et j). j ne peut donc pas ˆetre une c´el´ebrit´e et nous avons une contradiction.

Nous le comparons ` a a[2] (4), il est plus petit, donc nous continuons, nous le comparons ` a a[0] (2), il est encore plus petit et nous savons donc qu’il doit ˆetre le

Et on divise notre suite en deux sous-suites: la premi`ere consiste en tous les ´el´ements ` a gauche du pivot (ils sont tous plus petits que lui par construction), et la