ホームページ  >  記事  >  Java  >  Java でバブル ソートを実装するコードを記述する方法

Java でバブル ソートを実装するコードを記述する方法

WBOY
WBOY転載
2023-05-03 16:43:06644ブラウズ

Java でバブル ソートを実装するコードを記述する方法


#バブルソートの原則

  1. 隣接する 2 つの要素を比較します。最初の値が 2 番目の値より大きい場合は、それらの位置を入れ替えます (昇順で、降順でその逆)。

  2. 隣接する要素の各ペアをリストの最初から最後まで順番に比較します。このようにして、最大値を持つ要素が交換によってリストの最後に「バブリング」し、最初の「バブリング」ラウンドが完了します。

  3. 前の手順を繰り返し、リストの先頭から順に隣接する要素の比較を続けます。吹き出した要素は比較する必要はありません(最後まで比較できます。奥まで吹き出した要素は比較しても入れ替える必要はありません。比較しないことで削減効果が得られます)ステップ)。

  4. リストから開始して比較を続けると、比較の各ラウンドで 1 つの要素が正常に「バブル」します。各ラウンドで比較する必要がある要素の数は、「バブル」しない (比較する必要のない要素のペアがなくなる) 要素が 1 つだけ残るまで減少し、リストの並べ替えは完了します。

  5. #バブル ソート プロセス

次の 1 次元配列を例に挙げます:

int[] array = new int[]{55,33,22,66,11};

バブルの最初のラウンド

    図①は「バブル」の第1ラウンドにおけるデータの開始順序を縦棒グラフで示したもので、「前の要素が次の要素より大きい」という条件が満たされている限り、位置の順序は次のようになります。交換されない場合、交換は行われません。」
  1. array[0]=55 > array[1]=33、条件が満たされる場合、図②に示すように要素の位置の順序を交換します。
  2. array[1]=55 > array[2]=22、条件が満たされる場合、図③に示すように要素の位置の順序を交換します;
  3. ##array[2] =55 ##array[3]=66 > array[4]=11、条件が満たされる場合、図④に示すように要素の位置の順序が交換されます;

  4. 最初の「バブル」デモンストレーションは図に示すとおりです。
  5. 2 回目のバブルデモ


図④は、 「バブル」の 2 ラウンド目のデータの開始順序を示す棒グラフ;Java でバブル ソートを実装するコードを記述する方法

array[0]33 > array[1]=22 (条件が満たされている場合)図 5 に示すように、要素の位置の順序を交換します;
  1. ##array[1 ]33

  2. array[2]55 > array[3 ]=11 に示すように、要素は交換されず、条件が満たされ、要素の位置順序は次のようになります。

  3. 「バブル」デモンストレーションの 2 ラウンド目は、図 6 に示すとおりです:

  4. 3 ラウンド目

#図⑥は、「バブル」の 3 ラウンド目のデータの開始シーケンス縦棒グラフを示しています。


Java でバブル ソートを実装するコードを記述する方法##array[0] =22

array [1]=33 > array[2]=11, 条件が満たされる場合、図⑦のように要素の位置の順序を入れ替えます;
  1. 「バブル」のデモの第 3 ラウンドは、図に示すように、
  2. 4 回目のバブリング
  3. 図 7 は、4 回目のデータの開始順序列を示しています。 「バブル」のラウンド 形状図;


array[0]=22 > array[1]=11、条件が満たされる場合、「22」の位置順序を交換し、図 8 に示す「11」 ;Java でバブル ソートを実装するコードを記述する方法

「バブル」デモンストレーションの第 4 ラウンドを次の図に示します。これで、配列のバブルソートのプロセスが完了しました。
  1. 具体的なコードの実装

  2. BubbleSort クラス:
  3. public class BubbleSort {
        public static void sort(int array[]) {
            //i表示第几轮“冒泡”,j 表示“走访”到的元素索引。
            // 每一轮“冒泡”中,j 需要从列表开头“走访”到 array.length - 1 的位置。
            for (int i = 0; i < array.length - 1; i++) {
                for (int j = 0; j < array.length - 1 - i; j++) {
                    if (array[j] > array[j + 1]) {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
        }}

    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));
        }}
  4. 実行結果は次のとおりです:
排序前:[55, 33, 22, 66, 11]排序后:[11, 22, 33, 55, 66]

以上がJava でバブル ソートを実装するコードを記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。