Comment fonctionne la technique de tri rapide dans le travail de java?

Ici, vous découvrirez comment l'une des techniques de tri les plus couramment utilisés en Java fonctionne réellement. Cette technique est appelée Quicksort, et il est d'une utilisation très ingénieuse de la récursivité.

Pour la plupart d'entre nous, de trouver comment algorithmes de tri, comme le travail Quicksort est simplement un exercice intellectuel. L'API Java a déjà construit dans le tri.

La technique Quicksort trie un tableau de valeurs en utilisant la récursivité. Ses étapes de base sont donc:

  1. Choisir une valeur arbitraire qui se situe dans la plage de valeurs dans le tableau.

    Cette valeur est la point de pivot. La façon la plus courante de choisir le point de pivot est de choisir simplement la première valeur du tableau. Les gens ont écrit des diplômes de doctorat sur des moyens plus sophistiqués de choisir un point de pivot qui se traduit par tri plus rapide. Stick avec l'aide du premier élément du tableau.

  2. Réorganiser les valeurs de la matrice de sorte que toutes les valeurs qui sont inférieures au point de pivotement se trouvent sur le côté gauche de la matrice et toutes les valeurs qui sont supérieures ou égales au point de pivotement se trouvent sur le côté droit de la matrice.




    La valeur pivot indique la limite entre le côté gauche et le côté droit de la matrice. Il ne sera probablement pas le point mort, mais qu'il n'a pas d'importance. Cette étape est appelée partitionnement, et les côtés gauche et droit sont des tableaux partitions.

  3. Maintenant traiter chacune des deux sections du tableau comme un tableau séparé, et recommencer à l'étape 1 de cette section.

    Voilà la partie récursive de l'algorithme.

La partie la plus difficile de l'algorithme Quicksort est l'étape de partitionnement, qui doit réorganiser la partition de sorte que toutes les valeurs qui sont plus petits que le point de pivot sont sur la gauche et tous les éléments qui sont plus grand que le point de pivot sont sur la droite. Supposons que le tableau a ces dix valeurs:

38 17 58 22 69 31 88 28 86 12

Voici le point de pivot est de 38, et la tâche de l'étape de partitionnement est de réorganiser le tableau à quelque chose comme ceci:

17 12 22 28 31 38 88 69 86 58

Notez que les valeurs sont toujours en panne. Le tableau, cependant, a été divisé autour de la valeur 38: Toutes les valeurs qui sont à moins de 38 sont à gauche de 38, et toutes les valeurs qui sont supérieures à 38 sont à la droite de 38.

Maintenant, vous pouvez diviser le tableau en deux partitions à la valeur 38 et répéter le processus pour chaque côté. La valeur de pivot soi va de pair avec la partition gauche, donc la partition gauche est la suivante:

17 12 22 28 31 38

Cette fois-ci, l'étape de séparation 17 prend comme point de pivot et se réarrange les éléments de la manière suivante:

12 17 22 28 31 38

Comme vous pouvez le voir, cette partie du tableau est trié maintenant. Malheureusement, Quicksort ne réalise pas que, à ce stade, donc il faut un peu plus de récurrences pour être sûr. Mais cela est le processus de base.


» » » » Comment fonctionne la technique de tri rapide dans le travail de java?