#include <iostream>
//dailing 20140731
int BSearch(int a[], int low, int high, int key)
{
if (low>high)
{
return -1;
}
int mid = (high+low)/2;
if (a[mid] == key)
{
return mid;
}
if (a[mid]<key)
{
BSearch(a, mid+1,high,key);
}
else
{
BSearch(a,low,mid-1, key);
}
}
int main()
{
int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
int find = BSearch(a, 0, 11,13);
std::cout<<find<<std::endl;
system("pause");
}
利用分治法策略。退出条件:1、有解退出;2、无解退出。
二分查找
最新推荐文章于 2023-05-28 13:59:52 发布