QuickSort est un algorithme de division et de conquête. Dans le paradigme de conception d'algorithme Divide & Conquer, nous divisons les problèmes en sous-problèmes de manière récursive, puis résolvons les sous-problèmes et combinons enfin les solutions pour trouver le résultat final. Dans cet article, nous nous concentrerons sur QuickSort In
Les pointeurs suivants seront traités dans cet article,
Commençons!
Une chose à garder à l'esprit lors de la division des problèmes en sous-problèmes est que la structure des sous-problèmes ne change pas à partir du problème d'origine.
L'algorithme Divide & Conquer comporte 3 étapes:
- Divide: décomposer le problème en sous-problèmes
- Conquérir: résolution récursive des sous-problèmes
- Combiner: Combiner les solutions pour obtenir le résultat final
Il existe différents algorithmes basés sur le paradigme diviser & conquérir. Le tri rapide et le tri de fusion en font partie.
quel est le langage de programmation sas
Bien que la complexité temporelle dans le pire des cas de QuickSort soit O (n2), ce qui est plus que de nombreux autres algorithmes de tri tels que le tri par fusion et le tri par tas, QuickSort est plus rapide en pratique, car sa boucle interne peut être mise en œuvre efficacement sur la plupart des architectures, et dans la plupart données du monde réel.
Parlons de la mise en œuvre de l'algorithme de tri rapide. Les algorithmes de tri rapide prennent un élément pivot et partitionnent le tableau autour de l'élément pivot. Il existe un certain nombre de variantes de Quicksot qui dépendent de la façon dont vous choisissez l'élément pivot. Il existe plusieurs façons de choisir l'élément pivot:
- Choisir le premier élément
- Choisissez le dernier élément
- Choisir un élément aléatoire
- Élément médian de sélection
La prochaine chose importante à comprendre est la fonction partition () dans l'algorithme de tri rapide. Fonction de partition pour prendre un élément pivot, le place à la bonne position, déplace tous les éléments plus petits que l'élément pivot vers sa gauche et tous les éléments plus grands vers sa droite. Quicksort prend un temps linéaire pour le faire.
Ensuite, le tableau est divisé en deux parties à partir de l'élément pivot (c'est-à-dire les éléments inférieurs au pivot et les éléments supérieurs au pivot) et les deux tableaux sont triés de manière récursive à l'aide de l'algorithme Quicksort.
Maintenant que nous comprenons le fonctionnement de l'algorithme QuickSort. Voyons comment implémenter l'algorithme Quicksort en Java.
Tri rapide Fonction:
/ * La fonction Quicksort a besoin que le tableau soit trié avec l'index le plus bas et le plus élevé * /
void sort (int arr [], int lowIndex, int highIndex) {// Jusqu'à lowIndex = highIndex if (lowIndexRegardons maintenant le code de partitionnement pour comprendre comment cela fonctionne.
java comment quitter un programmeCloison Code
Dans le code de partitionnement, nous choisirons le dernier élément comme élément pivot. Nous parcourons le tableau complet (c'est-à-dire en utilisant la variable j dans notre cas). Nous gardons une trace du dernier plus petit élément du tableau (c'est-à-dire en utilisant la variable i dans notre cas). Si nous trouvons un élément plus petit que le pivot, nous déplaçons l'élément courant d'échange a [j] avec arr [i], sinon nous continuons à traverser.
int partition (int arr [], int lowIndex, int highIndex) {// Rendre le dernier élément comme pivot int pivot = arr [highIndex] // Utiliser i pour suivre les petits éléments de pivot int i = (lowIndex-1) pour (int j = lowIndex jMaintenant que vous avez compris la fonction de tri rapide et de partition, examinons rapidement le code complet
Tri rapide Code Java
class QuickSort {// Méthode de partition int partition (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) for (int j = lowIndex j// Méthode de tri
vide sort (int arr [], int lowIndex, int highIndex) {if (lowIndex// Méthode pour imprimer le tableau
static void printArray (int arr []) {int n = arr.length for (int i = 0 i// Méthode principale
public static void main (String args []) {int arr [] = {101, 37, 68, 29, 11, 5} int n = arr.length QuickSort ob = new QuickSort () ob.sort (arr, 0, n-1) System.out.println ('tableau trié') printArray (arr)}}Production:
Maintenant, après avoir exécuté le programme Java ci-dessus, vous auriez compris comment fonctionne QuickSort et comment l'implémenter en Java.Nous sommes donc arrivés à la fin de cet article sur «Quicksort in Java». Si vous souhaitez en savoir plus,Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.
Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog et nous vous répondrons dans les plus brefs délais.