day 9 二分查找

 1.输入一组有序数列;

2.每次查找序列的中间位置并与目标数比较;

3.依据比较缩小数列,直到找到目标数或数列长度为1;

4.输出;

 

#include<iostream>
using namespace std;
int n,t,flag;
int a[100];
int f(int l, int r)
{
while(l<r)
{
int mid =l+r>>1;
if (a[mid]>=t)r=mid;
else l=mid+1;
}
flag=l;
return a[l];
}
int main(){

cin>>n>>t;

for(int i=0;i<n;i++)cin>>a[i];

if(f(0,n-1)==t){printf("目标数在第%d个",flag+1);}
else{cout<<"Not Found";}
return 0;
}

 

posted @ 2023-04-18 12:20  The-rich  阅读(17)  评论(0)    收藏  举报