Au chapitre 5, vous avez vu une méthode de classification simple appelée
tri des bulles. Il a été mentionné à ce moment-là qu'il y avait
des notes nettement meilleures. Ici, vous développerez une version de l'un des meilleurs : le tri rapide (Quicksort).
Classification rapide, inventée et nommée par C.A.R. Hoare, est le meilleur algorithme de classification à usage général actuellement disponible. Je n'ai pas pu le montrer au chapitre 5 car la meilleure implémentation du tri rapide est basée sur la récursivité. La version que nous développerons classe un tableau de caractères, mais la logique peut être adaptée pour classer tout type d'objet.
Le tri rapide est basé sur l'idée de partitions. La procédure générale consiste à sélectionner une valeur, appelée comparaison, puis à diviser le tableau en deux sections. Tous les éléments supérieurs ou égaux à la valeur de partition sont insérés d'un côté et les plus petits sont insérés de l'autre. Ce processus est répété pour chaque section restante jusqu'à ce que le tableau soit trié. Par exemple, étant donné le tableau fedacb et en utilisant la valeur d comme comparaison, la première passe de tri rapide réorganiserait le tableau comme indiqué ci-dessous :
Initial f e d a c b
Passage 1 b c a d e f
Ce processus est ensuite répété pour chaque section – c'est-à-dire bca et def. Comme vous pouvez le constater, le processus est essentiellement de nature récursive, et en fait, la mise en œuvre la plus propre du tri rapide est récursive.
Vous pouvez sélectionner la valeur de comparaison de deux manières. Vous pouvez le sélectionner au hasard ou en trouvant la moyenne d'un petit ensemble de valeurs extraites du tableau. Pour obtenir une classification optimale, vous devez sélectionner une valeur qui se situe exactement au milieu de la plage de valeurs. Cependant, cela n’est pas facile à réaliser pour la plupart des ensembles de données. Le pire des cas est lorsque la valeur sélectionnée se trouve à une extrémité. Malgré tout, le tri rapide fonctionnera correctement.
La version de tri rapide que nous allons développer sélectionne l'élément central du tableau comme comparaison.
Tri rapide :
Fonctionnement :
QSDémo
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!