二分查找也叫折半查找,即每次查找都折半,使查找的范围每次减半,可使查找的效率大大提高。
具体的实现如下:
# include<stdio.h>
void main()
{
int arr[]={11,22,33,44,55,66,77,88,99};
int m,len=sizeof(arr)/sizeof(arr[0]);
printf("请输入要查找的数:\n");
scanf("%d",&m);
int low=0,high=len-1;
int mid=(low+high)/2;
int j;
while(low<=high)
{
if(arr[mid]==m)
{
j=mid;
printf("元素已找到,下标为:%d\n",j);
break;
}
else if(arr[mid]<m)
{
low=mid+1;
}
else if(arr[mid]>m)
{
high=mid-1;
}
}
if(low>high)
{
printf("不存在该元素\n");
}
}