Comment implémenter QuickSort en Java?



Cet article vous présentera un autre algorithme de tri Divide And Conquer qui est QuickSort en Java et le suivra avec une démonstration.

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

Image - Tri rapide en Java - Edureka

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 (lowIndex

Regardons maintenant le code de partitionnement pour comprendre comment cela fonctionne.

java comment quitter un programme

Cloison 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 j

Maintenant 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:

Sortie - Tri rapide en Java - Edureka

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.