bubble sort java java sorting algorithms code examples
Ce didacticiel expliquera le tri à bulles en Java ainsi que les principaux algorithmes de tri Java, l'implémentation du tri à bulles et des exemples de code:
Un algorithme de tri peut être défini comme un algorithme ou une procédure pour placer les éléments d'une collection dans un ordre spécifique. Par exemple, si vous avez une collection numérique comme une ArrayList d'entiers, vous souhaiterez peut-être organiser les éléments de ArrayList dans l'ordre croissant ou décroissant.
De même, vous souhaiterez peut-être organiser les chaînes d'une collection de chaînes par ordre alphabétique ou lexicographique. C'est là que les algorithmes de tri en Java entrent en scène.
meilleur convertisseur vidéo gratuit pour mac
Ce que vous apprendrez:
Principaux algorithmes de tri en Java
Les algorithmes de tri sont généralement évalués en fonction des complexités temporelles et spatiales. Java prend en charge divers algorithmes de tri utilisés pour trier ou organiser les collections ou les structures de données.
Le tableau ci-dessous présente les principaux algorithmes de tri pris en charge en Java ainsi que leurs complexités optimales / pires.
Complexité temporelle | ||||
---|---|---|---|---|
Tri Radix | Algorithme de tri linéaire. | O (nk) | O (nk) | O (nk) |
Algorithme de tri | Description | Meilleur cas | Pire cas | Cas moyen |
Tri à bulles | Compare à plusieurs reprises l'élément actuel aux éléments adjacents. À la fin de chaque itération, l'élément le plus lourd se met à bouillonner à sa place. | Sur) | O (n ^ 2) | O (n ^ 2) |
Tri par insertion | Insère chaque élément de la collection à sa place. | Sur) | O (n ^ 2) | O (n ^ 2) |
Tri par fusion | Il suit l'approche diviser pour conquérir. Divise la collection en sous-collections plus simples, les trie puis fusionne tout | O (nlogn) | O (nlogn) | O (nlogn) |
Tri rapide | Technique de tri la plus efficace et la plus optimisée. Utilise diviser et conquérir pour trier la collection. | O (nlogn) | O (n ^ 2) | O (nlogn) |
Tri par sélection | Recherche le plus petit élément de la collection et place-le à sa place à la fin de chaque itération | O (N ^ 2) | O (N ^ 2) | O (N ^ 2) |
Tri de tas | Les éléments sont triés en construisant le tas min ou max heap. | O (nlogn) | O (nlogn) | O (nlogn) |
Outre les techniques de tri indiquées dans le tableau ci-dessus, Java prend également en charge les techniques de tri suivantes:
- Tri de seau
- Tri de comptage
- Tri de coquille
- Tri en peigne
Mais ces techniques sont utilisées avec parcimonie dans les applications pratiques, donc ces techniques ne feront pas partie de cette série.
Parlons de la technique de tri à bulles en Java.
Tri à bulles en Java
Le tri à bulles est la plus simple de toutes les techniques de tri en Java. Cette technique trie la collection en comparant à plusieurs reprises deux éléments adjacents et en les échangeant s'ils ne sont pas dans l'ordre souhaité. Ainsi, à la fin de l'itération, l'élément le plus lourd se gonfle pour revendiquer sa position légitime.
S'il y a n éléments dans la liste A donnée par A (0), A (1), A (2), A (3),… .A (n-1), alors A (0) est comparé à A (1 ), A (1) est comparé à A (2) et ainsi de suite. Après avoir comparé si le premier élément est supérieur au second, les deux éléments sont échangés s'ils ne sont pas dans l'ordre.
Algorithme de tri à bulles
L'algorithme général de la technique de tri à bulles est donné ci-dessous:
Étape 1: Pour i = 0 à N-1, répétez l'étape 2
Étape 2: Pour J = i + 1 à N - je répète
Étape 3: si A (J)> A (i)
Permuter A (J) et A (i)
(Fin de la boucle interne pour)
(End if Outer for loop)
Étape 4: Sortir
Voyons maintenant la technique de tri à bulles à l'aide d'un exemple illustratif.
Nous prenons un tableau de taille 5 et illustrons l'algorithme de tri des bulles.
Trier un tableau à l'aide du tri par bulles
La liste suivante doit être triée.
quel est un bon téléchargeur mp3 pour Android
Comme vous pouvez le voir ci-dessus, le tableau est entièrement trié.
L'illustration ci-dessus peut être résumée sous forme de tableau comme indiqué ci-dessous:
Passe | Liste non triée | Comparaison | Liste triée |
---|---|---|---|
{3,6,11,4,15} | {11.4} | {3,6,4,11,15} | |
1 | {11, 3, 6,15,4} | {11,3} | {3,11,6,15,4} |
{3,11,6,15,4} | {11,6} | {3,6,11,15,4} | |
{3,6,11,15,4} | {11.15} | {3,6,11,15,4} | |
{3,6,11,15,4} | {15,4} | {3,6,11,4,15} | |
deux | {3,6,11,4,15} | {3,6} | {3,6,11,4,15} |
{3,6,11,4,15} | {6.11} | {3,6,11,4,15} | |
3 | {3,6,4,11,15} | {3,6} | {3,6,4,11,15} |
{3,6,4,11,15} | {6.4} | {3,4,6,11,15} | |
{3,4,6,11,15} | TRIÉ |
Comme le montre l'exemple ci-dessus, le plus grand élément bouillonne jusqu'à sa bonne position à chaque itération / passe. En général, lorsque nous atteignons N-1 (où N est un nombre total d'éléments dans la liste) passe; nous aurons la liste entière triée.
Exemple de code de tri à bulles
Le programme ci-dessous montre l'implémentation Java de l'algorithme de tri à bulles. Ici, nous maintenons un tableau de nombres et utilisons deux boucles for pour traverser les éléments adjacents du tableau. Si deux éléments adjacents ne sont pas dans l'ordre, ils sont échangés.
import java.util.*; class Main{ // Driver method to test above public static void main(String args()) { //declare an array of integers int intArray() = {23,43,13,65,11,62,76,83,9,71,84,34,96,80}; //print original array System.out.println('Original array: ' + Arrays.toString(intArray)); int n = intArray.length; //iterate over the array comparing adjacent elements for (int i = 0; i intArray(j+1)) { int temp = intArray(j); intArray(j) = intArray(j+1); intArray(j+1) = temp; } //print the sorted array System.out.println('Sorted array: ' + Arrays.toString(intArray)); } }
Production:
Baie d'origine: (23, 43, 13, 65, 11, 62, 76, 83, 9, 71, 84, 34, 96, 80)
Tableau trié: (9, 11, 13, 23, 34, 43, 62, 65, 71, 76, 80, 83, 84, 96)
Questions fréquemment posées
Q # 1) Quels sont les algorithmes de tri en Java?
Répondre: L'algorithme de tri peut être défini comme un algorithme ou une procédure à l'aide duquel les éléments d'une collection peuvent être ordonnés ou agencés d'une manière souhaitée.
Voici quelques-uns des algorithmes de tri pris en charge en Java:
- Tri à bulles
- Tri par insertion
- Tri de sélection
- Tri par fusion
- Tri rapide
- Tri Radix
- Heapsort
Q # 2) Quel est le meilleur algorithme de tri en Java?
Répondre: Merge Sort est censé être l'algorithme de tri le plus rapide de Java. En fait, Java 7 a utilisé en interne le tri par fusion pour implémenter la méthode Collections.sort (). Le tri rapide est également un autre meilleur algorithme de tri.
Q # 3) Qu'est-ce que le tri à bulles en Java?
Répondre: Le tri à bulles est l'algorithme le plus simple de Java. Le tri à bulles compare toujours deux éléments adjacents dans la liste et les échange s'ils ne sont pas dans l'ordre souhaité. Ainsi, à la fin de chaque itération ou passe, l'élément le plus lourd est remonté à sa place.
Q # 4) Pourquoi Bubble sort Ndeux?
Répondre: Pour implémenter le tri à bulles, nous utilisons deux boucles for.
comment ouvrir le fichier.dat sur iphone
Le travail total effectué est mesuré par:
Quantité de travail effectuée par la boucle interne * nombre total de fois que la boucle externe s'exécute.
Pour une liste de n éléments, la boucle interne fonctionne pour O (n) pour chaque itération. La boucle externe s'exécute pour l'itération O (n). Par conséquent, le travail total effectué est O (n) * O (n) = O (ndeux)
Q # 15) Quels sont les avantages du tri à bulles?
Réponse: Les avantages du tri à bulles sont les suivants:
- Facile à coder et à comprendre.
- Peu de lignes de code sont nécessaires pour implémenter l'algorithme.
- Le tri est effectué sur place, c'est-à-dire que de la mémoire supplémentaire n'est pas nécessaire et donc pas de surcharge de mémoire.
- Les données triées sont immédiatement disponibles pour traitement.
Conclusion
Jusqu'à présent, nous avons discuté de l'algorithme de tri Bubble Sort en Java. Nous avons également exploré l'algorithme et l'illustration détaillée du tri d'un tableau à l'aide de la technique de tri à bulles. Ensuite, nous avons implémenté le programme Java dans le tri à bulles.
Dans le prochain tutoriel, nous continuerons avec les autres techniques de tri en Java.
=> Consultez TOUS les didacticiels Java ici.
lecture recommandée
- Tri par sélection en Java - Algorithme de tri par sélection et exemples
- Tri par insertion en Java - Algorithme de tri par insertion et exemples
- Tri à bulles en C ++ avec des exemples
- Comment trier un tableau en Java - Tutoriel avec des exemples
- Tutoriel Java Array Length avec des exemples de code
- Méthode MongoDB Sort () avec exemples
- Commande de tri Unix avec syntaxe, options et exemples
- Mot-clé Java 'this': Tutoriel avec des exemples de code