アルゴリズムとプログラミング
要素数 n の配列の先頭(インデックス0)に新しい要素を挿入するとき、既存要素の移動回数として正しいものはどれか。ただし配列のサイズは十分に確保されているものとする。
ア.0回(移動不要)
イ.1回
ウ.n/2 回
エ.n 回正解
解説
配列の先頭への挿入は「電車の先頭に割り込む」ようなもの。後ろの乗客全員が一席ずつ後ろにずれなければならない。n 人いれば n 回のシフトが必要になる。
なぜ エ が正解か
配列の先頭(インデックス0)に要素を挿入するには、既存の全 n 要素をそれぞれ1つ後ろのインデックスにシフトする必要がある。インデックス n-1 から順に 0 まで後ろ向きにずらすため、移動回数は n 回となる。これが配列先頭挿入の計算量が O(n) となる理由である。
出典: AI生成問題(学習用)