平成29年度 春期 基本情報技術者試験 午前 問7
テクノロジ/アルゴリズム顧客番号をキーとして顧客データを検索する場合,2分探索を使用するのが適しているものはどれか。
出典:平成29年度 春期 基本情報技術者試験 午前 問7
- ア顧客番号から求めたハッシュ値が指し示す位置に配置されているデータ構造
- イ顧客番号に関係なく,ランダムに配置されているデータ構造
- ウ顧客番号の昇順に配置されているデータ構造
- エ顧客番号をセルに格納し,セルのアドレス順に配置されているデータ構造
正解:ウ
解説
2分探索法は,探索範囲の中央の要素とキー値を比較し,範囲を半分に絞り込んでいく手法であり,適用の前提としてデータがキーの昇順(または降順)に整列されている必要があります。顧客番号の昇順に配置されていれば,中央値との大小比較によって効率的に探索範囲を絞り込めます。
選択肢ごとの解説
- ア誤り。ハッシュ値で位置が決まるデータ構造は,ハッシュ探索に適した構造であり,整列を前提とする2分探索には向きません。
- イ誤り。ランダムに配置されたデータでは,大小関係に基づく範囲の絞り込みができないため2分探索は使えません。
- ウ正しい。昇順に整列されたデータであれば,中央の値との比較で探索範囲を半分に絞り込む2分探索が効率的に行えます。
- エ誤り。アドレス順に配置されているだけでは,顧客番号自体が整列されているとは限らず,2分探索の前提を満たしません。