#include<stdio.h>//二分查找binary search
int main()
{
//定义数组
int array[]={0,5,13,19,22,41,55,68,72,81,98};
int targetNumber,isFound=0; //要查找的数字,查找结果。
int i,index;//存放找到的数字的下标
int low,high,mid; //标识搜索区间的3个指针
int arrLength = sizeof(array)/sizeof(array[0]); //获得数组长度
printf("请输入在以下数组中要查找的数字:\n");
for(i=0;i<arrLength;i++)
{
printf("%d ",array[i]);
}
scanf("%d",&targetNumber);
low=0;
high=arrLength-1;
index=-1;
while(low<=high)
{
mid=(high+low)/2;
if(array[mid]==targetNumber)
{
isFound=1;index=mid+1;break;
}
else if(array[mid]<targetNumber)
{
low=mid+1;
}
else if(array[mid]>targetNumber)
{
high=mid-1;
}
}
if(isFound==0)
printf("没有找到数字%d。\n",targetNumber);
else
printf("找到了,%d是第%d个数字\n",targetNumber,index);
return 0;
}