#include <stdio.h>
int search(int key, int a[], int len)
{
int ret = -1;
int left = 0;
int right = len-1;
while ( left<=right )
{
int mid = (left+right)/2;
if ( a[mid] == key ){
ret = mid;
printf("找到了!\n");
break;
} else if ( a[mid]>key){
right = mid-1;
} else{
left = mid+1;
}
}
// if (left > right)
// {
// printf("找不到了\n");
// }
return ret;
}
int main()
{
int i=0,k=0;
scanf("%d",&k);
int a[]={2,4,7,11,13,16,21,24,27,32,36,40,46};
int r=search(k,a,sizeof(a)/sizeof(a[0]));
// for(i=0;i<sizeof(a)/sizeof(a[0]);i++) //遍历数组
// {
// printf("%d\n",a[i]);
// }
if (r!=-1)
{
printf("位于数组第%d个位置\n",r);
}else{
printf("not found\n");
}
return 0;
}
C语言二分法搜索
最新推荐文章于 2024-10-15 22:45:07 发布