8大ソート--ソートの挿入【直接ソートの挿入】
2267 ワード
ソート・ポリシーの挿入:
無秩序サブシーケンスの1つまたは複数のレコードを秩序シーケンスに「挿入」し、レコードの秩序シーケンスの長さを増加させます.
ソートを直接挿入する方法は、次のとおりです.は全部でn-1回のソートを行う. p番目のパスでは、前のp+1要素の正しい位置が見つかるまで、位置p上の要素を左に移動します.
時間複雑度:O(n*n)
最良の場合,並べ替えられたときの時間複雑度はO(n)である.
ダイレクトコード:
無秩序サブシーケンスの1つまたは複数のレコードを秩序シーケンスに「挿入」し、レコードの秩序シーケンスの長さを増加させます.
ソートを直接挿入する方法は、次のとおりです.
時間複雑度:O(n*n)
最良の場合,並べ替えられたときの時間複雑度はO(n)である.
ダイレクトコード:
package ch02;
import util.ArrayUtil;
public class InsertSort {
// O(n*n)
public static void doInsertSort(int[] array){
for(int i=1;iint tmp = array[i];
int j;
for(j=i;j>0&&tmp1];j--){
array[j]=array[j-1];
}
array[j]=tmp;
}
}
public static void main(String[] args) {
int[] array = new int[]{58,46,72,95,84,25,37,58,63,12};
// int[] array = new int[]{2,8,6,4,3,9,1};
ArrayUtil.display(array);
// a[i] ;
doInsertSort(array);
ArrayUtil.display(array);
}
}