L'exemple de cet article indique la façon dont Java utilise le tri bouillonnant pour trier le tableau. Partagez-le pour tout le monde pour votre référence. Les détails sont les suivants:
1. Tri à bulles:
Utilisez le tri bouillonnant pour trier le tableau
2. Concepts de base:
Deux nombres adjacents sont comparés à leur tour, mettent le front décimal et le grand nombre est derrière. Autrement dit, dans le premier voyage: comparez d'abord les premier et deuxième chiffres, mettez la décimale avant et grand nombre. Comparez ensuite les deuxième et troisième numéros, mettez la décimale avant, et après le grand nombre, continuez, jusqu'à les deux derniers nombres, mettez la décimale avant, et le grand nombre est mis. À ce stade, le plus grand nombre a été fixé à la fin. Dans le deuxième voyage: à partir de la première paire (parce que le deuxième nombre du deuxième et du troisième nombre peut être réduit, le premier nombre n'est pas moins que le deuxième nombre), mettez la décimale après l'avoir mise, elle a été comparée Jusqu'à l'avant-dernier nombre (la première position est déjà la plus importante). En conséquence, répétez le processus ci-dessus jusqu'à la fin de la commande finale.
Troisièmement, réalisez les idées:
Pour l'implémentation à double boucle, la variable du cycle extérieur est définie sur I et la variable de circulation intérieure est définie sur J. S'il y a n nombres qui doivent être triés, le cycle externe est répété n-1 fois et le cycle intérieur répète n-1, n-2, ..., 1 fois. Les deux éléments qui se comparent à chaque fois sont liés au cycle intérieur J. Ils peuvent être identifiés avec un [j] et un [J + 1] séparément, et la valeur de i est 1,2, ..., n-1 , n-1 pour la valeur de chaque i, j est 0,1,2, ... ni.
Laissez la longueur du tableau N:
1 et 1 Par rapport aux deux données adjacentes, si les données précédentes sont supérieures aux données ultérieures, les deux données seront échangées.
2 De cette façon, les données les plus importantes "coulent" à la position N-1 du tableau après une traversée des données N-1.
3 et 3 N = n-1, si n n'est pas 0, répétez les deux premières étapes, sinon le tri est terminé.
4. Implémentation du code Java:
Package ArrayDemo; int [] a = {2, 4, 76, 12, 34, 23, 86}; * * Les fonctions de tri des bulles sont définies comme une utilisation statique et pratique. ++) {/ / / Ceci est le numéro de contrôle pour (int j = 0; j <a.length -i; j ++) {// j <a.length -i, le nombre d'éléments comparatifs if (a [j]> a [j + j + 1]) {int temp = a [j];
5. Analyse des performances:
Si le statut initial de la séquence d'enregistrements est une "séquence positive", le processus de tri bouillonnant doit seulement être trié, et seule la comparaison N-1 pendant le processus de tri est effectuée sans enregistrements mobiles; 1) / 2 Les comparaisons et les enregistrements doivent être effectués. Par conséquent, la complexité de temps totale du tri bouillonnant est O (n * n).
6. Optimisation des algorithmes:
La méthode de carence et d'amélioration de la méthode de tri bouillonnante:
Premièrement, pendant le processus de tri, une fois la commande finale effectuée, bien que les données aient été complètement triées, le programme ne peut pas déterminer s'il faut terminer le tri. Valeur de sa valeur initiale à non -non -Non -Non -Non -Non -Non -Non -Non -NON -NON -NON -NON -NON -UNHOUGH SET VALEUR. Chaque tri est défini sur 0 avant le début du tri. Au début d'une nouvelle série de tri, vérifiez ce logo.
/ *** Fonction de tri des bulles Amélioration de la version * / public static void bubblesort (int [] a) {booléen drapeau = true; ; ;
Deuxièmement, dans le tri bouillonnant, un balayage peut être échangé d'innombrables, ou il peut y avoir une ou plusieurs échanges de données. Les informations de localisation de l'échange de données ne sont pas traitées. Afin d'utiliser pleinement ces informations, dans une analyse globale, vous pouvez effectuer un tri à bouillonnement local sur chaque données de commande arrière, qui est appelée tri à bulles locales. Les algorithmes de tri bouillonnant et bouillonnants locaux ont la même complexité du temps, et sous la condition d'un ordre positif et inverse, le nombre de mots clés requis pour le nombre de mots clés et de mouvements est exactement le même. Étant donné que le nombre de mouvements de données du tri bouillonnant local et du tri bouillonnant est toujours le même, le nombre de mots clés requis pour le tri à bouillonnement local est souvent moins que le tri bouillonnant, ce qui signifie que le tri bouillonnant local est susceptible de comparer le nombre moyen de fois sur moyen. que la contrefaçon. Pour les données désactivées, lorsque nous sommes dans le tri bouillonnant, si les données K et l'ordre inverse des données K + 1, alors les données K + 1 sont triées en avant, il se déplace vers la bonne position, c'est-à-dire que les données K + 1 précédentes Ajustez dans un ordre positif. Parce que cette méthode bouillonnante ne fait que bouillonner pour les données K + 1 précédentes, nous l'appelons - bouillonnement local
On espère que cet article est utile à la conception du programme Java de tous.