FE Study
FE Study メニュー

学習記録はこのブラウザー内に保存されます。

ホーム問題を解く
ログイン不要・無料で学習

ONE QUESTION, ONE STEP

挿入ソートを学ぼう

選んで、確かめて、理解する。焦らず進めましょう。

科目Bアルゴリズム標準
QUESTION 52

配列aの先頭3要素は昇順に整列済みである。次の処理で第4要素をその範囲へ挿入すると、終了後のaはどうなるか。配列の要素番号は1から始まる。andは左から評価し、左が偽なら右を評価しないものとする。 整数型の配列: a ← {3, 7, 10, 5, 12} 整数型: key ← a[4] 整数型: j ← 3 while ((j >= 1) and (a[j] > key)) a[j + 1] ← a[j] j ← j - 1 endwhile a[j + 1] ← key

出典:本サイト オリジナル教材(2026年)

本サイトで独自に作成。IPAの試験問題からの転載ではありません。

公開日:

解答を一つ選んでください

選択肢を選んで、答え合わせをしましょう。

回答せずに正解・解説を確認する

正解:ア {3, 5, 7, 10, 12}

この表示だけでは、回答数や正答率は変わりません。

解説

keyには移動前の5を保存します。j=3では10をa[4]へ移し、j=2では7をa[3]へ移します。j=1では3 > 5が偽なので止まります。最後にa[2]へkeyの5を入れ、{3,5,7,10,12}になります。a[5]はこの処理では変更していません。

ア

5より大きい10と7を右へずらし、3の直後へ5を入れた結果です。

イ

10だけでなく7も5より大きいので、7も右へ移動します。

ウ

途中では5のあった場所が上書きされますが、最後にkeyから5を戻します。

エ

3は5より小さいので移動しません。5を先頭へ置く処理ではありません。

関連知識

挿入ソートは、整列済み部分へ次の要素を適切な位置に入れていきます。移動対象の値を先にkeyへ保存するので、配列上の元の位置を上書きしても値を失いません。

間違えやすいポイント

while終了時のjは挿入位置そのものではなく、その一つ前です。最後はa[j+1]へ代入します。

覚え方

取り出して保存、大きい値を右へ、空いた所へ挿入。

実務での意味

少量のデータや、ほぼ整列済みのデータを扱う処理を理解する基礎になります。

解説:本サイト編集部によるオリジナル文章

この問題の前後に、アルゴリズムの基礎知識ガイドで、 仕組み・比較・解き方を確認できます。 手順を確かめたい方は連続達成回数を求める擬似言語を、一行ずつ追跡するの実習へ。 この問題の誤りを報告する(GitHub)。問題IDとURLを入力した下書きが開きます。自動投稿は行いません。 投稿は公開されるため、氏名・住所・メールアドレス・学習記録は記入しないでください。 詳しくはお問い合わせ窓口をご覧ください。