一日一コード 10.二分検索で探してみる。

今日はアルゴリズムの教科書にも載っていてためになる二分検索だ。
人間は大抵二分検索をしているが、コンピュータだと数字じゃないとできないのでアルゴリズムよりもデータに気を遣う。


まあ、とりあえずアルゴリズム自体はほとんど難しくない。

なんとなくC++ クラス


int search(int target) //二分検索で探してみる。
{
int start=0, end=100, i, date;

while( start != end )
{
i = (start + end)/2;
date = this->d[i].date;
if( date == target ) return i; //見つかった。
if( target > date) start = i; //ターゲットはもっと最近のデータ。
if( target < date) end = i; //ターゲットはもっと昔のデータ。
}
return -1;//見つからなかった。
}

サンプルデータとコード
今までの10回分まとめ