対象データ群をソートし、その中央の値から探索していくアルゴリズム。
よって、ソートされていることが前提。
一回の探索ごとにデータ量を半分に絞っていく。
第一引数:データ群
第二引数:検索値
検索値がデータ群に存在する場合は、その添え字を返す。
存在しない場合は、-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