平成18年春期試験問題 午前問14
問14解説へ
昇順に整列済の配列要素A(1),A(2),…,A(n)から,A(m)=kとなる配列要素A(m)の添字mを2分探索法によって見つける処理を図に示す。終了時点でm=0の場合は,A(m)=kとなる要素は存在しない。図中のaに入る式はどれか。ここで,/ は,小数点以下を切り捨てる除算を表す。

- (x+y) → m
- (x+y)/2 → m
- (x-y)/2 → m
- (y-x)/2 → m
広告
解説
2分探索法は、要素が昇順または降順に整列された集合に対し、探索範囲を2分の1に狭めることを繰り返して目的のデータを探索するアルゴリズムです。
2分探索法では目的とする値が与えられると、次の操作を再帰的に繰り返してその値を探索します。
具体的にxが1、yが100で探索対象の添字が18の時の流れをトレースしていくと、以下の流れとなります。
2分探索法では目的とする値が与えられると、次の操作を再帰的に繰り返してその値を探索します。
- 探索範囲の中央に位置する値と目的値を比較する
- 目的値のほうが小さければ中央から探索範囲の最後までを、目的値のほうが大きければ探索範囲の最初から中央まで探索範囲から除外する(探索範囲が2分の1になる)
- 1に戻る
具体的にxが1、yが100で探索対象の添字が18の時の流れをトレースしていくと、以下の流れとなります。
- (1+100)/2=50 → m
- 50-1=49 → y
- (1+49)/2=25
- 25-1=24 → y
- (1+24)/2=12
- 12+1=13 → x
- (13+24)/2=18
- 探索対象が見つかったので処理終了
広告