工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Javaでバブルソートをマスター:わかりやすい例とステップバイステップ解説

バブルソートとは

バブルソートは、リストを繰り返し走査し、隣接する要素を比較して順序が間違っていれば交換する、古典的な比較ベースのアルゴリズムです。各パスで次の最大値が最終位置に「泡のように」浮かび上がることからこの名がつきました。シンプルですが、ソートの仕組みを理解するための確かな基礎となります。

Java実装

以下のプログラムは、整数配列に対するバブルソートを示します。アルゴリズムの動作が見えるよう、詳細なデバッグ情報を出力します。

package com.guru99;
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {860, 8, 200, 9};
        System.out.println("--- ソート前の配列 ---");
        printArray(arr);
        bubbleSort(arr); // バブルソートでソート
        System.out.println("--- ソート後の配列 ---");
        printArray(arr);
    }
    
    static void bubbleSort(int[] array) {
        int n = array.length;
        for (int i = 0; i < n; i++) {
            System.out.println("ソートパス " + (i + 1));
            for (int j = 1; j < (n - i); j++) {
                System.out.println("比較: " + array[j - 1] + " と " + array[j]);
                if (array[j - 1] > array[j]) {
                    // 要素を交換
                    int temp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = temp;
                    System.out.println(array[j] + " は " + array[j - 1] + " より大きい");
                    System.out.println("要素を交換: 交換後の配列");
                    printArray(array);
                }
            }
        }
    }
    
    static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
    }
}

プログラムの出力

860 8 200 9
ソートパス 1
比較: 860 と 8
860 は 8 より大きい
要素を交換: 交換後の配列
8 860 200 9
比較: 860 と 200
860 は 200 より大きい
要素を交換: 交換後の配列
8 200 860 9
比較: 860 と 9
860 は 9 より大きい
要素を交換: 交換後の配列
8 200 9 860
ソートパス 2
比較: 8 と 200
比較: 200 と 9
200 は 9 より大きい
要素を交換: 交換後の配列
8 9 200 860
ソートパス 3
比較: 8 と 9
ソートパス 4
--- ソート後の配列 ---
8 9 200 860

Java

  1. Java Hello World:最初のプログラム
  2. Java多次元配列をマスター:2D・3D配列の実例解説
  3. Java配列コピー技法:包括的ガイド
  4. Javaオブジェクト配列の作成:ステップバイステップガイド
  5. Java String.charAt()完全解説:構文、戻り値、例外、実例
  6. Java String.endsWith()マスター:文字列サフィックスチェック実例付き
  7. Java コンストラクタオーバーロード完全解説:実践コード例付き
  8. Javaで素数判定を行うプログラム
  9. Javaでバブルソートをマスター:わかりやすい例とステップバイステップ解説
  10. Javaで挿入ソート:わかりやすい例とステップバイステップガイド
  11. Javaで選択ソート:ステップバイステップ例と完全コード