| データ区分 | 件数 |
|---|---|
| A | 10 |
| B | 30 |
| C | 50 |
| その他 | 10 |
表に示す構成のデータを,流れ図の手順で処理する場合について考える。流れ図中のx,y,zをそれぞれデータ区分A,B,Cと適切に対応させれば,比較("xか?","yか?","zか?")の回数の合計は,最低何回で済むか。 (流れ図: 開始→「xか?」→Yesでx処理, Noで「yか?」→Yesでy処理, Noで「zか?」→Yesでz処理, Noでその他の処理→「終わりか?」)
ア. 170
比較回数最小化の流れ図問題. 4区分のデータ(A=10件,B=30件,C=50件,その他=10件)を「xか?→yか?→zか?→その他」と3回の判定で振り分ける. 各レコードは「自分の区分」までの比較を通過するため,比較回数の合計を最小化するには「件数が多い区分ほど早く判定する」のがコツ. つまりx=C(50件,1回比較),y=B(30件,2回比較),z=A(10件,3回比較),その他=10件(3回全部通過). 総比較回数=50×1+30×2+10×3+10×3=50+60+30+30=170回となり最小値. これを誤って小件数を先に判定すると比較回数が増える(逆順だと最大値). 「頻度の高いものから判定」が探索効率化の基本原理である.
ITパスポート 2015年 (平成27年 秋期) の過去問一覧へ戻る・問48