Python tri rapide
Fonctions et méthodes Python
Michael Zippo
01.11.2021
Un QuickSort Python sélectionne un élément pivot et divise les éléments d’un tableauen deux nouveaux tableau< em>s. Les nombres supérieurs au pivot vont dans un tableau; les nombres inférieurs au pivot vont dans un autre. Chaque tableauest trié, puis tous les tableausont fusionnés en un seul.
Il existe de nombreux algorithmes de tri que vous pouvez utiliser pour trier une liste en programmation. Il y a des Python tris par insertion, sortes de bulles, et plus encore. QuickSort est l’un des types de tri les plus courants.
Dans ce guide, nous allons parler de ce que sont les QuickSorts et de leur fonctionnement. Nous allons vous présenter un exemple de QuickSort Python afin que vous puissiez apprendre à en implémenter un.
Sans plus tarder, commençons !
Qu’est-ce qu’un QuickSort Python ?
Un algorithme Python QuickSort divise un tableau en sous-tableaux. Cet algorithme appelle ces sous-tableaux de manière récursive pour trier chaque élément de la liste. Le contenu d’un sous-tableau est déterminé par un élément pivot qui n’est pas déplacé dans un nouveau sous-tableau.
L’algorithme QuickSort divise et conquiert. Cela signifie que la t√¢che de trier une liste est décomposée en plusieurs sous-t√¢ches. √Ä la fin du tri, les résultats de ces sous-t√¢ches se rassemblent pour renvoyer une liste triée.
Dans un QuickSort, la sous-t√¢che définit un pivot pour chaque sous-liste et trie les éléments en fonction de leur valeur par rapport à le pivot.
Quand dois-je utiliser un QuickSort Python ?
Un QuickSort est utile lorsque la complexité temporelle est importante. En effet, QuickSort utilise moins d’espace mémoire que les autres algorithmes, ce qui leur donne un gain d’efficacité.
81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi technologique après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.
Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.
Vous ne devez utiliser qu’un QuickSort si vous connaissez la récursion Python. En effet, l’algorithme QuickSort dépend de fonctions récursives.
Un QuickSort est plus efficace qu’un tri par fusion sur des tableaux plus petits. Cependant, sur des ensembles de données plus volumineux, un tri par insertion ou un tri par fusion peut être plus rapide.
Comment fonctionne un QuickSort ?
Un QuickSort sélectionne un élément pour servir de pivot. Il peut s’agir de n’importe quel élément d’une liste. Pour ce tutoriel , nous allons choisir le dernier élément d’une liste (3).
Un QuickSort compare la valeur de pivot à chaque nombre lorsque nous parcourons les éléments de la liste. Si un élément est supérieur au numéro de pivot, nous déplaçons le nombre après le pivot ; sinon, on déplace le nombre avant le pivot :
La valeur 3 est descendue dans notre liste. Tous les éléments de moins de 3 m à sa gauche ; toutes les valeurs supérieures à trois se sont déplacées vers sa droite.
Notre tableau Python est divisé en deux moitiés : les éléments supérieurs au pivot et les éléments moins qu’un pivot.
Une fois ce processus amorcé, un nouveau pivot commence sur chacune des deux moitiés. Ce pivot commence séparément et utilise le même algorithme que ci-dessus. Tout d’abord, nous allons définir une valeur de pivot qui est égale à la dernière valeur de chaque liste :
Ensuite, nous allons déplacer toutes les valeurs supérieures à un pivot à droite du pivot. Nous déplaçons toutes les valeurs inférieures au pivot vers la gauche.
Ce processus se poursuit jusqu’à ce que nous triions notre liste :
Première fois | 1 | 2 |
| 4 | 8 | 5 |
Deuxième fois |
| 1 |
|
| 8 | 5 |
|
|
|
|
| 5 | 87t ?/ |
Troisième Heure |
|
|
|
|
| 8 |
Notre tableau final ressemble à ceci :
Exemple Python QuickSort
Le QuickSort a besoin de deux fonctions : une fonction pivot et une fonction QuickSort.
Commençons par la fonction de partition. Cela partitionnera ou préparera le tableau en fonction de la valeur de l’élément pivot.
Notre fonction de partition :
- Sélectionnez l’élément pivot
- Déplacer tous les éléments supérieurs au pivot à droite du pivot
- Déplacer tous les éléments inférieurs au pivot à gauche du pivot
Programme Python QuickSort
√âcrivons un programme qui implémente cet algorithme :
Tout d’abord, nous sélectionnons un élément pivot. Ceci est égal au nombre le plus élevé de notre liste.
Ensuite, nous devons exécuter notre algorithme. Nous pouvons le faire en écrivant une fonction distincte :
"Career Karma est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à suivre un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"
Cette fonction vérifie si la valeur de "faible" est inférieure à la valeur de "élevée". Si c’est le cas, notre tri peut continuer. Sinon, notre tri s’arrête. Si notre tri s’arrête, cela signifie que nous avons trié la liste.
Cela continue jusqu’à ce que chaque élément de la liste soit trié.
Tout d’abord, nous spécifions une liste de valeurs à trier. Nous utilisons la méthode Python len() pour calculer la longueur de notre liste de valeurs. Ensuite, nous appelons la méthode quick_sort().