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

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
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

java中封装是什么java中封装是什么May 16, 2019 pm 06:08 PM

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

归纳整理JAVA装饰器模式(实例详解)归纳整理JAVA装饰器模式(实例详解)May 05, 2022 pm 06:48 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code