Exemple de programmation

en langage C

de QuickSort

(Hoare, 1962)

[en Pascal]



Exemple

 

 Valeur

 3 8 5 4 7 6 2 9
 Indice  1 2 3 4 5 6 7 8


 

echanger(v,gauche,(gauche+droit)/2);

 Valeur

 4 8 5 3 7 6 2 9
 Indice  1 2 3 4 5 6 7 8

i=2;dernier=1

for(i=gauche+1;i<=droit;i++)
if (v[i]<v[gauche])
echanger(v,++dernier,i);
 

de i=2 à 3 inclu rien

 Valeur

 4 3 5 8 7 6 2 9
 Indice  1 2 3 4 5 6 7 8

 

 

de i=5 à 6 inclu rien

Pour i=7

 Valeur

 4 3 2 8 7 6 5 9
 Indice  1 2 3 4 5 6 7 8

 

 

 

echanger(v,gauche,dernier);

 Valeur

 2 3 4 8 7 6 5 9
 Indice  1 2 3 4 5 6 7 8

 

Conclusion:
On voit alors que entre les indices 1 et 3 inclu sont tous les éléments <= à 4, entre 4 et 8 inclu tous les éléments > à 4.