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

Javaで選択ソート:ステップバイステップ例と完全コード

選択ソートとは

選択ソートは、未ソート部分から最小要素を繰り返し選んで所定の位置に交換する、シンプルな比較ベースのアルゴリズムです。大規模データには向きませんが、その簡潔さから教育目的や小さな配列に最適です。

アルゴリズムの仕組み

Java実装

以下は、整数配列に対する選択ソートアルゴリズムを示す簡潔なJavaプログラムです。ソート前後の配列と、各パスの中間ステップを出力します。

package com.guru99;
public class SelectionSortAlgo {
    public static void main(String[] args) {
        int[] myArray = {860, 8, 200, 9};
        System.out.println("------選択ソート前------");
        printArray(myArray);
        selection(myArray); // 配列をソート
        System.out.println("-----選択ソート後-----");
        printArray(myArray);
    }
    
    public static void selection(int[] array) {
        for (int i = 0; i < array.length - 1; i++) {
            System.out.println("ソートパス番号 " + (i + 1));
            int index = i;
            for (int j = i + 1; j < array.length; j++) {
                System.out.println("比較: " + array[index] + " と " + array[j]);
                if (array[j] < array[index]) {
                    System.out.println(array[index] + " は " + array[j] + " より大きい");
                    index = j;
                }
            }
            int smallerNumber = array[index];
            array[index] = array[i];
            array[i] = smallerNumber;
            System.out.println("要素を交換: 交換後の配列");
            printArray(array);
        }
    }
    
    private 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 と 200
比較: 8 と 9
要素を交換: 交換後の配列
8 860 200 9
ソートパス番号 2
比較: 860 と 200
860 は 200 より大きい
比較: 200 と 9
200 は 9 より大きい
要素を交換: 交換後の配列
8 9 200 860
ソートパス番号 3
比較: 200 と 860
要素を交換: 交換後の配列
8 9 200 860
-----選択ソート後-----
8 9 200 860

パフォーマンスメモ

選択ソートは入力に関わらずO(n²)回の比較を行い、追加メモリは最大O(1)しか使用しません。その決定論的な振る舞いは、メモリが制約される環境に適しています。

Java

  1. Java配列をマスター:宣言、初期化、操作
  2. Java Hello World:最初のJavaプログラム作成ステップバイステップガイド
  3. Javaカプセル化完全ガイド:実践例で理解するデータ隠蔽とアクセサ
  4. Java変数とデータ型完全ガイド:実例付きで徹底解説
  5. Java String.length()メソッド:文字列サイズ取得の実例解説
  6. Java String.charAt()完全解説:構文、戻り値、例外、実例
  7. Java String.contains()メソッド:部分文字列チェックの実践例
  8. Java String.endsWith()マスター:文字列サフィックスチェック実例付き
  9. Java BufferedReader でファイル読み込み:実践ガイドと例
  10. Javaでバブルソートをマスター:わかりやすい例とステップバイステップ解説
  11. Javaで挿入ソート:わかりやすい例とステップバイステップガイド