二分查找可以大大增大查找效率 ,下面使一个典型案例
二分法查找有序增数组中的指定元素,找到了
返回下标值,没找到,返回-1.
#include <iostream>
using namespace std;
int find(int *arr,int numsofarr,int check)
{
int left=0;
int right=numsofarr-1;
while(left<=right)
{
int mid=(left+right)/2;
if (arr[mid]>check)
{
right=mid-1;
}
else if (arr[mid]<check)
{
left=mid+1;
}
else return mid;
}
return -1;
}
int main()
{
int numsofarr;
cin>>numsofarr;
int *arr=new int [numsofarr];
for (int i=0;i<numsofarr;i++)
{
cin>>arr[i];
}
int check;
cin>>check;
cout<<find(arr,numsofarr,check);
delete arr;
return 0;
}