c言語で挿入ソートを調べながら書きました。
void insertionSort (int array[], int array_size) {
int i, j, key;
for (j = 1; j < array_size; j++) { key = array[j]; i = j - 1; while ((i >= 0) && (array[i] > key)) { //keyとその左隣の大小を比べる array[i + 1] = array[i]; //i番目の要素がkeyよりも大きい場合、i番目とi+1番目を入れ替える i--; //iを一つ下げる.iが0以上ならwhileの中を繰り返す } array[i + 1] = key; }
}
しっかり動きはするのですが、なぜ最後にarray[i + 1] = keyを書くのかが理解できません。初学者なのでわかりやすく教えていただけないでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/24 07:18