#include<stdio.h>//折半查找法
int zheban(int a[],int n,int m){
int low=0;
int high=n-1;
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==m)
return mid;//找到,返回下标
else if(a[mid]<m)
low=mid+1;
else
high=low-1;
}
return -1;//没有找到,返回-1
}
int main(){
int n;
scanf("%d",&n);
int a[n];//输入n个有序的数
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int m;//输入要查找的数
scanf("%d",&m);
int k=zheban(a,n,m);
if(k==-1)
printf("没有找到");
else
printf("%d",k);
return 0;
}
有序数列的折半查找法
最新推荐文章于 2024-07-24 17:46:08 发布