二分查找

 1 int binary_search(int* a, int len, int goal)
 2 {
 3     int low = 0;
 4     int high = len - 1;
 5     while(low <= high)
 6     {
 7         int middle = (low + high)/2;
 8         if(a[middle] == goal)
 9             return middle;
10         //在左半边
11         else if(a[middle] > goal)
12             high = middle - 1;
13         //在右半边
14         else
15             low = middle + 1;
16     }
17     //没找到
18     return -1;
19 }

 

posted on 2015-04-07 21:57  tsw123  阅读(120)  评论(0编辑  收藏  举报

导航