Maison > Java > javaDidacticiel > Tri rapide en Java

Tri rapide en Java

(*-*)浩
Libérer: 2019-10-22 15:53:14
avant
2998 Les gens l'ont consulté

Principe du tri rapide

Le tri rapide est une amélioration du tri à bulles compare une par une, plaçant ainsi de petites valeurs à une extrémité et la. une valeur plus grande est placée à l'autre extrémité pour atteindre l'objectif de tri.

Tri rapide en Java

Le tri rapide consiste à sélectionner d'abord une valeur critique, à mettre les valeurs plus petites que la valeur critique à une extrémité et à mettre les valeurs plus grandes que la valeur critique à l'autre bout. En répétant la méthode du paragraphe précédent, vous pouvez diviser les deux côtés qui ont dépassé la valeur critique et les diviser deux fois... Après le tri des données, l'ensemble du tri rapide est terminé.

Algorithme de tri rapide

Algorithme de base :

//QuickSort
while(i < j) {
		while(num[j] > tmp && j > i)
			--j;
		while(num[i] <= tmp && i < j) {
			++i;
		}
		if(i < j) {
			t = num[i];
			num[i] = num[j];
			num[j] = t;
		}
	}
	num[left] = num[i];
	num[i] = tmp;
Copier après la connexion

Ce qui suit est le programme complet de tri rapide :

//QuickSort.java
public class QuickSort {
	public static void main(String[] args) {
		int[] num = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
		
		System.out.print("Qriginal array is:");
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i] + " ");
		}
		System.out.println();
		
		//QuickSort
		quicksort(num, 0, 9);
		
		System.out.print("Sorted array is:");
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i] + " ");
		}
		System.out.println();
	}
	
	public static void quicksort(int[] num, int left, int right) {
		if(left > right)
			return;
		int tmp, i, j, t;
		tmp = num[left];
		i = left;
		j = right;
		while(i < j) {
			while(num[j] > tmp && j > i)
				--j;
			while(num[i] <= tmp && i < j) {
				++i;
			}
			if(i < j) {
				t = num[i];
				num[i] = num[j];
				num[j] = t;
			}
		}
		num[left] = num[i];
		num[i] = tmp;
		quicksort(num, left, i - 1);
		quicksort(num, i + 1, right);
	}
}
Copier après la connexion

Le résultat du programme est le suivant :

Qriginal array is:10 9 8 7 6 5 4 3 2 1
Sorted array is:1 2 3 4 5 6 7 8 9 10
Copier après la connexion

Le tri rapide est plus efficace que les autres méthodes de tri, le tri rapide est donc la meilleure méthode de tri générale actuellement. La complexité temporelle de QuickSort est O(nlogn).

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal