基本情報トップに戻る
B難易度: 標準2026年度

基本情報技術者 予想問題B 第66問

問題

次の擬似言語プログラムを実行したとき、配列dataの内容はどれか。 整数型の配列: data ← {5, 3, 8, 1, 4} /* 選択ソート 1パス目 */ 整数型: minIdx ← 1 整数型: j ← 2 while (j ≦ 5) if (data[j] < data[minIdx]) minIdx ← j endif j ← j + 1 endwhile 整数型: temp ← data[1] data[1] ← data[minIdx] data[minIdx] ← temp

選択肢

  1. 1ア {1, 3, 8, 5, 4}
  2. 2イ {3, 5, 8, 1, 4}
  3. 3ウ {1, 3, 5, 4, 8}
  4. 4エ {5, 3, 8, 1, 4}

正解

1. ア {1, 3, 8, 5, 4}

詳しい解説を見る

解説

選択ソートの1パス目は、配列全体から最小値の位置を探し、最後に先頭要素と交換する。前半のループでminIdxの変化を追うと、data[2]=3<data[1]=5でminIdx=2、data[4]=1<data[2]=3でminIdx=4となり、data[3]=8とdata[5]=4では更新されない。最小値はdata[4]=1である。後半の交換処理でdata[1]=5とdata[4]=1を入れ替え、結果は{1, 3, 8, 5, 4}となるため、アが正解である。イの{3, 5, 8, 1, 4}は隣接要素を交換するバブルソートの動きと混同した値、ウはソートが複数パス進んだ状態、エは交換が行われなかった場合である。頻出ポイント:選択ソートは「走査中は位置の記録だけ行い、交換はパスの最後に1回」という点がバブルソートとの違いとして頻出である。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。