• Aucun résultat trouvé

SoitCn le nombre moyen de comparaisons effectuées par l’algorithme de tri rapide (voir algo- rithme 1) sur un tableau uniformément distribué de taillen

N/A
N/A
Protected

Academic year: 2022

Partager "SoitCn le nombre moyen de comparaisons effectuées par l’algorithme de tri rapide (voir algo- rithme 1) sur un tableau uniformément distribué de taillen"

Copied!
1
0
0

Texte intégral

(1)

Analyse en moyenne du tri rapide

Algorithme 1 :Tri rapide.

Entrée:A[ℓ..r]un tableau d’éléments comparables.

Partition(A, ℓ, r)

Données:pun élément deA,i, j des indices.

Sortie:i∈Jℓ, rK,Aétant réarrangé pour que A[ℓ..k[6p=A[k]6A]k..r].

p←A[r];i←ℓ

pourj=ℓ àr−1faire siA[j]6palors

échangerA[i]↔A[j]

i←i+ 1 échangerA[i]↔A[r]

retourneri TriRapide(A, ℓ, r) siℓ < ralors

i←Partition(A, ℓ, r)

TriRapide(A, ℓ, i−1);TriRapide(A, i+ 1, r)

Théorème 1. SoitCn le nombre moyen de comparaisons effectuées par l’algorithme de tri rapide (voir algo- rithme 1) sur un tableau uniformément distribué de taillen. AlorsCn= Θ(nlog2n).

Preuve. Lors de la première étape de partitionnement, l’algorithme effectuen−1comparaisons pour réorganiser les éléments de la façon suivante :

p

1 In n

< p > p

Ag Ad

Le pivotpet donc sa position finale In suivent une loi uniforme. Aussi, sachant In =i∈ {1, . . . , n}, les sous- tableaux Ag et Ad sont uniformément distribués. En effet chaque couple (Ag, Ad) possible peut provenir de

n1 i1

permutations initiales du tableau entier donc a une probabilité1/((i−1)!(n−i)!), ce qui correspond bien à la probabilité uniforme surSi

1×Sn

i. AinsiC0= 0et pour toutn>1, Cn=

n

X

i=1

1

n(Ci1+Cni) +n−1,

donc nCn=

n1

X

i=1

2Ci+n(n−1)

= 2Cn1+

"n

2

X

i=1

2Ci+ (n−2)(n−1)

#

+ 2(n−1)

= (n+ 1)Cn1+ 2(n−1),

puis Cn

n+ 1 =Cn1

n +2(n−1) n(n+ 1) =

n1

X

k=1

2(k−1)

k(k+ 1) = 2 log(n) +O(1).

D’oùCn= 2nlog(n) +O(n).

Références. [CLRS]

902 Diviser pour régner : exemples et applications.

903 Exemples d’algorithmes de tri. Complexité.

926 Analyse des algorithmes : complexité. Exemples.

[CLRS] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivestet Clifford Stein : Algorithmique.

Dunod, 3ème édition.

[email protected] v20140910 1/1

Références

Documents relatifs

Il sut que l'ensemble soit muni d'une relation d'ordre total : chaînes de caractères pour l'ordre lexicographique par

Lorsqu’une base de données est très volumineuse et non ordonnée, trouver une information dans cette base est très long et très ingrat.. En effet la seule solution est

[r]

• Idée : trouver le plus petit et le placer en premier puis trouver le plus petit parmi les éléments non placés et le placer en.

Ainsi, si l’on veut que le tableau ci-contre soit un tableau de proportionnalité, il faut que les produits en croix soient égaux. « On effectue le produit en croix de 2

3) Combiner : les deux sous-listes triées sont alors combinées de sorte à ce que la liste résultat soit triée... Il nécéssite de l’ordre de n log(n) comparaisons/affectations

[r]

- Pour la recomposition du tableau, il n'est pas possible d'évaluer a priori le nombre de passage dans la boucle interne ( pour cpt … ) puisque cette boucle dépend des valeurs