#include<iostream>
using namespace std;
const int arraySize=10;
int binarySearch(const int list[],int listLength,int searchItem);
int main()
{
int intList[arraySize];
int number;
int index;
cout<<"Enter"<<arraySize<<"integers."<<endl;
for(index=0;index<arraySize;index++)
cin>>intList[index];
cout<<endl;
cout<<"Enter the number to br searched:";
cin>>number;
cout<<endl;
index=binarySearch(intList,arraySize,number);
if(index!=-1)
cout<<number<<"is found at position"<<index<<endl;
else
cout<<number<<"is not in the list."<<endl;
return 0;
}
int binarySearch(const int list[],int listLength,int searchItem)
{
int first=0;
int last=listLength-1;
int mid;
bool found=false;
while(first<=last&&!found)
{
mid=(first+last)/2;
if(list[mid]==searchItem)
found=true;
else
if(list[mid]>searchItem)
last=mid-1;
else
first=mid+1;
}
if(found)
return mid+1;
else
return -1;
}
二分法寻找在排序数列中的数字
最新推荐文章于 2021-05-18 00:14:49 发布