令和7年度秋期 応用情報技術者試験 午前 問6

分野:アルゴリズムとプログラミング|実際に出題されたIPA過去問題

異なるn個のデータが昇順に整列された表がある。この表をm個のデータごとのブロックに分割し,各ブロックの最後尾のデータだけを線形探索することによって,目的のデータの存在するブロックを探し出す。次に,当該ブロック内を線形探索して目的のデータを探し出す。このときの平均比較回数を表す式はどれか。ここで,mは十分に大きく,nはmの倍数とし,目的のデータは必ず表の中に存在するものとする。

  1.  m+n/m
  2.  m/2+n/(2m)
  3.  n/m
  4.  n/(2m)
解答・解説を見る

正解:イ

AI解説

ブロック分割による探索では、まず各ブロックの最後尾のn/m個のデータを線形探索して目的のブロックを見つけ(平均比較回数はn/(2m)回)、次にそのブロック内のm個のデータを線形探索する(平均比較回数はm/2回)。両者の合計であるm/2+n/(2m)が全体の平均比較回数となる。 ア: m+n/mは、平均ではなく最大回数に近い形の式や、割り算の位置を誤った場合に生じ得る式であり、平均比較回数の正しい式とは異なる。 イ: 正しい。ブロック探索の平均比較回数n/(2m)と、ブロック内探索の平均比較回数m/2を足し合わせたm/2+n/(2m)が正しい式である。 ウ: n/mは、ブロックの個数(またはブロック探索の最大回数)を表す式であり、平均比較回数を表す式ではない。 エ: n/(2m)は、ブロックを探し出す部分の平均比較回数のみであり、ブロック内探索の分(m/2)を含んでいない。 💡 2段階の線形探索(索引付き順次探索)では、「各段階の平均比較回数(要素数の半分)」をそれぞれ求めてから合計する、という考え方を身につけておくとよい。

出典:令和7年度 秋期 応用情報技術者試験 午前 問6 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング)の過去問