Javaを使用して挿入ソートアルゴリズムを実装する方法

PHPz
リリース: 2023-09-19 08:28:42
オリジナル
1265 人が閲覧しました

Javaを使用して挿入ソートアルゴリズムを実装する方法

Java を使用して挿入ソート アルゴリズムを実装する方法

挿入ソートは、要素の比較と交換の考えに基づいた、シンプルだが効果的なソート アルゴリズムです。この記事では、Java で挿入ソート アルゴリズムの実装を作成する方法を学び、具体的なコード例を示します。

挿入ソートの基本的な考え方は、配列をソートされた部分とソートされていない部分に分割することです。まず、最初の要素をソート済み部分として扱い、未ソート部分の要素をソート済み部分の正しい位置に順番に挿入します。正しい挿入位置を見つけるには、現在の要素と並べ替えられた部分の要素を 1 つずつ比較し、適切な挿入位置が見つかるまで並べ替えられた部分の要素を徐々に後方に移動する必要があります。このプロセスを繰り返すことで、最終的に配列全体がソートされます。

次は、Java を使用して挿入ソート アルゴリズムを実装するためのサンプル コードです:

public class InsertionSort {

    public static void insertionSort(int[] arr) {
        int n = arr.length;
        for (int i = 1; i < n; i++) { // 从第二个元素开始,依次将元素插入到已排序部分的正确位置
            int key = arr[i];
            int j = i - 1;
            while (j >= 0 && arr[j] > key) {
                arr[j + 1] = arr[j]; // 向后移动已排序部分的元素
                j--;
            }
            arr[j + 1] = key; // 插入元素到正确位置
        }
    }

    public static void main(String[] args) {
        int[] arr = {5, 2, 8, 3, 1};
        System.out.println("原始数组:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();

        insertionSort(arr);

        System.out.println("排序后的数组:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();
    }
}
ログイン後にコピー

この例では、配列を受け入れる insertionSort という名前の静的メソッドを定義します。パラメータとして整数を指定します。ループを使用して未ソート部分の要素を調べ、それらをソート済み部分の正しい位置に挿入します。内部の while ループは、正しい挿入位置が見つかるまで、ソートされたセクションの要素を後方に移動するために使用されます。最後に、main メソッドでサンプル配列を作成し、insertionSort メソッドを呼び出して並べ替えます。最後に、ソートされた配列をコンソールに出力します。

上記のコードを実行すると、次の出力が得られます。

原始数组:
5 2 8 3 1
排序后的数组:
1 2 3 5 8
ログイン後にコピー

ご覧のとおり、挿入ソート アルゴリズムは元の配列を正常にソートしました。

概要:
この記事では、Java を使用して挿入ソート アルゴリズムの実装を記述する方法を紹介し、具体的なコード例を示します。挿入ソートは、配列をソート済みの部分とソートされていない部分に分割し、要素を 1 つずつ比較して移動することでソートを実現する、シンプルですが効果的なソート アルゴリズムです。挿入ソート アルゴリズムの考え方とコード実装を理解することで、このソート アルゴリズムを実際のプログラミング プロジェクトに柔軟に適用できます。

以上がJavaを使用して挿入ソートアルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート