二分探索(BinarySearch)

対象データ群をソートし、その中央の値から探索していくアルゴリズム。
よって、ソートされていることが前提。

一回の探索ごとにデータ量を半分に絞っていく。


第一引数:データ群
第二引数:検索値
検索値がデータ群に存在する場合は、その添え字を返す。
存在しない場合は、-1を返す。

public static int binarySearch(int[] data, int target){

  int lo = 0;
  int hi = (data.length - 1);
  int mid = (lo + mid) / 2;

  while(lo <= hi && data[mid] != target){
    if(target < data[mid]){
      hi = mid - 1;
    }else{
      lo = mid + 1;
    }
  mid = (lo + hi) / 2;
  }
  if(lo <= hi){
    return mid;
  }else{
    return -1;
  }
 }

-----------------------------------------------------
最終更新:2009年05月30日 18:54
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。