Maison  >  Article  >  Java  >  Explication graphique détaillée de l'implémentation Java du tri à bulles

Explication graphique détaillée de l'implémentation Java du tri à bulles

WBOY
WBOYavant
2022-03-08 17:30:523041parcourir

Cet article vous apporte des connaissances pertinentes sur java, qui présente principalement les problèmes liés à la mise en œuvre du tri à bulles. Le tri à bulles consiste à comparer deux éléments adjacents, du début à la fin de la liste, à comparer chaque paire d'éléments adjacents. à notre tour, jetons-y un coup d'œil. J'espère que cela sera utile à tout le monde.

Explication graphique détaillée de l'implémentation Java du tri à bulles

Apprentissage recommandé : "Tutoriel Java"

Principe de tri des bulles

  1. Comparez deux éléments adjacents. Si le premier est plus grand que le second, échangez leurs positions (par ordre croissant, vice versa par ordre décroissant).

  2. Comparez chaque paire d'éléments adjacents dans l'ordre du début à la fin de la liste. De cette façon, l'élément ayant la plus grande valeur « bulle » jusqu'à la fin de la liste grâce à l'échange, complétant ainsi le premier tour de « bulles ».

  3. Répétez l'étape précédente et continuez à comparer les éléments adjacents depuis le début de la liste. Les éléments qui ont « bouillonné » n'ont pas besoin d'être comparés (vous pouvez les comparer jusqu'au bout. Les éléments qui ont « bouillonné » vers l'arrière n'ont pas besoin d'être échangés même s'ils sont comparés. Ne pas comparer peut réduire mesures).

  4. Continuez à comparer à partir de la liste, et un élément « bouillonnera » avec succès à chaque tour de comparaison. Le nombre d'éléments qui doivent être comparés à chaque tour diminuera jusqu'à ce qu'il ne reste qu'un seul élément qui ne "bulle" pas (aucune paire d'éléments n'a besoin d'être comparée), puis le tri de la liste est terminé.

Processus de tri des bulles

Prenons ce tableau unidimensionnel comme exemple :

int[] array = new int[]{55,33,22,66,11};
Le premier tour de bulle
  1. La figure ① est un histogramme de l'ordre de départ des données dans le premier tour de "bulle ", à condition que Si la condition est remplie : " Si l'élément précédent est plus grand que l'élément suivant, alors l'ordre de position est échangé, sinon aucun échange n'est effectué. "
  2. array[0]=55 > array[1]=33, la condition est remplie, échangez l'ordre de position des éléments, comme le montre la figure ② ;
  3. array[1]=55 > =22, la condition Si la condition est remplie, l'ordre de position des éléments est échangé, comme le montre la figure
  4. array[2]=55 array[3]=66, si la condition n'est pas remplie, l'ordre de position des éléments n'est pas échangé, comme le montre la figure ③ ;
  5. array[3]=66 > array[4]=11, si les conditions sont remplies, échangez l'ordre de position des éléments, comme indiqué dans Figure ④ ;

Le premier tour de démonstration de « bulle » est illustré dans la figure :
Explication graphique détaillée de limplémentation Java du tri à bulles

Le deuxième tour de bouillonnement
  1. La figure ④ est l'histogramme de l'ordre de départ des données du deuxième tour de « bulle " ;
  2. array[0]33 > array[1]=22, les conditions sont remplies et les éléments sont échangés. Ordre de position, comme le montre la figure ⑤ ;
  3. array[1]33
  4. array[2]55 > ; l'ordre de position des éléments, comme le montre la figure ⑥ ; ordre des données au troisième tour de "bulle" ;
array[0]=22
array[1]=33 > array[2]=11, si les conditions sont remplies, échangez l'ordre de position des éléments, comme le montre la figure Explication graphique détaillée de limplémentation Java du tri à bulles
Le troisième tour de ; La démonstration de la « bulle » est comme le montre la figure ci-dessous :
  1. Le quatrième tour de bulle
  2. La figure ⑦ est l'histogramme de la séquence de départ des données du quatrième tour de « bulle » ; =22 > array[1]= 11. Si les conditions sont remplies, échangez l'ordre de position de "22" et "11", comme indiqué sur la figure ⑧ ;

Le quatrième tour de démonstration "bulle" est comme indiqué ; sur la figure :
Explication graphique détaillée de limplémentation Java du tri à bulles

À ce stade, le bouillonnement du tableau Le processus de tri est terminé !
  1. Implémentation de code spécifique
  2. Classe BubbleSort :
  3. public class BubbleSort {
        public static void sort(int array[]) {
            //i表示第几轮“冒泡”,j 表示“走访”到的元素索引。
            // 每一轮“冒泡”中,j 需要从列表开头“走访”到 array.length - 1 的位置。
            for (int i = 0; i  array[j + 1]) {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
        }}
Classe TestMain

import java.util.Arrays;public class TestMain {
    public static void main(String[] args) {
        int[] array = new int[]{55, 33, 22, 66, 11};
        //输出排序前的array数组
        System.out.print("排序前:");
        System.out.println(Arrays.toString(array));
        //调用BubbleSort类中的sort方法对array数组进行排序
        BubbleSort.sort(array);
        //输出冒泡排序后的array数组
        System.out.print("排序后:");
        System.out.println(Arrays.toString(array));
    }}

Les résultats en cours d'exécution sont les suivants : Explication graphique détaillée de limplémentation Java du tri à bulles
排序前:[55, 33, 22, 66, 11]排序后:[11, 22, 33, 55, 66]
Apprentissage recommandé : "

Tutoriel d'apprentissage Java
"

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer