二分法查找
利用二分法,查找数组中某元素
#include<stdio.h>
int search( int list[], int end, int k );//声明
int main()
{
int k,index,end;
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf("请输入需要查找的数:");
scanf("%d",&k);
index = search( a, end, k );//调用search函数
printf("a[%d]=%d",index,k);
return 0;
}
int search( int list[], int end, int k )
{
int mid;
for(int i=0;i<end;i++)
{
mid=(i+end)/2;//mid每次查找都是中间数
if(list[mid] == k)//要查找的数是中间数
{
return mid;
break;//查找结束,结束循环
}
else if(list[mid]>k)//查找的数在mid左边
end=mid-1;//数组最后一个元素下标变为mid-1,左半部分最后一个元素下标
else
end=mid+1;
}
}