ソートの挿入
1674 ワード
ソートされた配列内のすべての要素の位置を検索して挿入し、ソートするアルゴリズムです.
ソート・プロシージャ
ソースコード
void InsertionSort() {
int[] nums = {1000, 400, 12, -59, 328, 121, -3};
// loop 1
for(int i = 1; i < nums.length; i++) {
//loop 2
for(int j = i-1; j >= 0; j--) {
// conditional 1
if(nums[j] > nums[j+1]) {
int temp = nums[j+1];
nums[j+1] = nums[j];
nums[j] = temp;
}
}
}
System.out.println(Arrays.toString(nums));
}
loop 1:2番目の要素から最後の要素までを表します.loop 2:現在の要素の前の要素を表します.
conditional 1:2つの要素を比較し、大きな要素を後ろに押して位置を探します.
時間の複雑さ
最悪の場合、挿入ソートと同様にO(N^2)です.
すべての配列の最適な場合,一次元素のみを比較し,従ってO(N)である.また、要素を1つずつ挿入/削除すると、オーバーヘッドが非常に小さくなります.
配列サイズが小さいときはかなり効率的で、配列サイズが大きいときはO(nlogn)アルゴリズムを使って、挿入ソートを切り替えることもできます.
くうかんふくざつさ
1つのアレイでしか行われないのでO(n)である.
長所
短所
平均
Reference
この問題について(ソートの挿入), 我々は、より多くの情報をここで見つけました https://velog.io/@yeoro/삽입-정렬-Insertion-sortテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol