Exemple de programmation

en langage Pascal

de QuickSort

(Hoare, 1962)

 



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 to droit do
if (vect[i]<vect[gauche]) then
echanger(vect,++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.