メインコンテンツへ
アルゴリズムとプログラミングアルゴリズム実践

線形探索と二分探索の使い分けとして最も適切なものはどれか。

ア.データ量が10件以下の場合は必ず二分探索を使うべきである
イ.データが整列されていない場合は線形探索、整列済みの場合は二分探索が有効である正解
ウ.文字列データには線形探索が使えず、数値データのみに適用できる
エ.二分探索はどんな場合でも線形探索より高速である

解説

線形探索vs二分探索は「地図なし散歩vs地図あり最短ルート」みたいなもの。整列されていない街(データ)では地図(整列の前提)が役立たず、端から歩くしかない(線形探索)。でも整列済みの街なら「北か南か」を繰り返すだけで目標に一直線(二分探索)。前提条件が肝心!

なぜ イ が正解か

使い分けの核心:①線形探索:前提条件なし(整列不要)、O(n)、どんなデータにも適用可能②二分探索:必ず整列済みデータが前提、O(log n)、整列コストを考慮する必要あり。未整列データに二分探索は適用できない(「真ん中が大きいか小さいか」という判断ができない)。逆に既に整列済みなら二分探索の方が圧倒的に速い。

なぜ ア は間違いか

データ量が少ない場合は線形探索で十分なことが多く、二分探索の準備コストが見合わないこともある。「10件以下なら必ず二分探索」というルールは存在しない。

なぜ ウ は間違いか

線形探索は文字列にも数値にも適用できる。「最初から順番に調べる」操作にデータ型の制限はない。文字列比較が可能であれば問題なく動作する。

なぜ エ は間違いか

二分探索はO(log n)だが、整列に追加コストがかかる。n=10程度の小さなデータなら線形探索の方が全体的に速い場合もある。「どんな場合でも」は誤り。

出典: AI生成問題(学習用)