//二分法查找
#include <stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10}; //有序数组
int low,high,mid,n=10,x;
printf("Enter x:"); //提示输入x
scanf("%d",&x);
low=0;high=n-1; //开始查找区间为整个数组
while (low<=high) //循环条件
{
mid=(low+high)/2; //中间位置
if(x==a[mid])
break; //查找成功,终止循环
else
if(x<a[mid])
high=mid-1; //前半段,high前移
else
low=mid+1; //后半段,low后移
}
if(low<=high)
printf("Index id %d \n",mid);
else
printf("Not Found\n");
return 0;
}
#include <stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10}; //有序数组
int low,high,mid,n=10,x;
printf("Enter x:"); //提示输入x
scanf("%d",&x);
low=0;high=n-1; //开始查找区间为整个数组
while (low<=high) //循环条件
{
mid=(low+high)/2; //中间位置
if(x==a[mid])
break; //查找成功,终止循环
else
if(x<a[mid])
high=mid-1; //前半段,high前移
else
low=mid+1; //后半段,low后移
}
if(low<=high)
printf("Index id %d \n",mid);
else
printf("Not Found\n");
return 0;
}