1、原理
对于给定值的查找,如果大于该数组的中间元素,下一步在元素值大的区域继续与其中间元素比较;否则下一步在元素值小的区域内继续查找,直到找到目标元素。如果到最后还没有找到,则输出“数组中没有该元素”。
2、代码实现
#include <iostream>
using namespace std;
//比较值
int array_039[10]={0,1,2,3,4,5,6,7,8,9};
void binary_search(int left,int right,int value)
{
int search_index;
search_index=(left+right)/2;//二分
if(array_039[search_index]==value)//如果等于二分点值
cout<<"元素"<<value<<"位于第"<<search_index<<"位"<<endl;
else if(value>array_039[search_index])//大于,往右边移
binary_search(search_index+1,right,value);
else if(value<array_039[search_index])//小于,往左边移
binary_search(left,search_index-1,value);
else
return;
}
int main()
{
int temp;
cout<<"输入你想要找的元素值:";
cin>>temp;
binary_search(0,9,temp);
return 0;
}