二分探索のアルゴリズム
二分探索のアルゴリズム
二分探索のアルゴリズム
stock =[[10001,'A',87],
[10002,'B',89],
[10003,'C',52],
[10004,'D',120],
[10005,'E',119],
[10006,'F',115]]
上記のような商品番号、商品名、在庫数のデータを格納した2次元配列がある。
商品番号を二分探索で探索する。
[考え方]
■ 中央のデータを求める。データは添字0 の要素と添字5 の要素の間にあるので,( 0 + 5 )/2より,添字2 の要素。 添字2の要素の商品番号は10003。探索する商品番号と比較し、探索商品番号と一致していれば、探索するデータを発見したことになる。探索商品番号の方が大きければデータは後ろ半分にあり、探索商品番号が小さければ探索データは前半分にある。
■探索対象が後ろ半分にある場合、探索する範囲を添字3 の要素から添字5 の要素とする。探索対象が前半分にある場合は、探索する範囲を添字1から添字2の要素とする。
■中央のデータを求める。探索対象が後ろ半分の場合( 3 + 5 )/2より,添字4 の要素が中央のデータ。探索対象が前半分の場合(1+2)/2より、添字1の要素が中央のデータ。
■ 添字4の要素の商品番号は10005。添字1の要素の商品番号は10001。
■以下同様に一致すれば探索は終了するが、一致しない場合は大小関係により探索範囲を変更する。