二分查找算法的前提是必须是有序数组
#include <iostream>
using namespace std;
//有许多地方可以完善,不过先学习思想。
//二分查找算法
//数组必须是有序的。
int binary_search(int array[],int val,int begin,int end);
int main()
{
int array[10] = {1,2,3,4,5,6,7,8,9,10};
int result = binary_search(array,9,0,10);
cout<<result<<endl;
return 0;
}
int binary_search(int array[],int val,int begin,int end)
{
int mid =begin + (end-begin)/2;
if(array[mid] > val)
{
return binary_search(array,val,begin,mid - 1);
}
else if(array[mid] < val)
{
return binary_search(array,val,mid + 1,end);
}
else
{
return mid;
}
return -1;
}