Java の 7 つの基本ソートの直接挿入ソート

(1) 基本的な考え方

すべてのレコードが挿入され、新しい順序付きシーケンスが取得されるまで、キー値のサイズに従って、ソート対象のレコードを既にソート済みの順序付きシーケンスに 1 つずつ挿入します。(ポーカーのカードソートに似ています)

i(i>=1)要素を挿入する際には、前のarray[0]、array[1]、...、array[i-1]がソートされていますので、このときarray[i]のソートコードを使用します。 ]とarray[i-1]、array[i-2]、…のソートコード順を比較し、挿入位置が見つかったらarray[i]を挿入し、元の要素の順序を戻す位置が後ろに移動します。

(2) コードの実装

public static void insertSort(int[] array) {
for (int i = 1; i < array.length; i++) {
            int tmp = array[i];
            int j = i-1;
            for (; j >= 0; j--) {
                if (array[j] > tmp) {
                    array[j + 1] = array[j];
                } else {
                    break;
                }
            }
            array[j + 1] = tmp;
        }
}
 

以下では、新しいクラスで挿入ソートを呼び出してテストします。

(3) 機能概要

1. 要素の順序が多いほど、効率が高くなります。

2. 時間計算量は O(N^2)、空間計算量は O(1) です。

3. 安定したソートです

以上が直接挿入ソートに関する説明ですが、ご不明な点がございましたら、お気軽にコメント欄でご質問ください。

 

Supongo que te gusta

Origin blog.csdn.net/m0_56911648/article/details/130655818
Recomendado
Clasificación