任务代码:
二分查找数组的一个数字:(函数法)
#include <stdio.h>
int binarySearch(int a[],int len,int key)
{
int low=0,high=len-1,mid;
int i=-1;//相当于index
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==key)
{
i=mid;
break;
}
else if(key>a[mid])
{
low=mid+1;
}
else
{
high=mid-1;
}
}
return i;
}
int main()
{
int array[10]={0,1,2,3,4,5,6,7,8,9};
//先排序
bubbleSort(array,10);
//二分查找
int key;
int index=-1;
printf("输入你想查找的数字:");
scanf("%d",&key);
index=binarySearch(array,10,key);
if(index>=0)
{
printf("找到这个数字位于第%d个",index);
}
else
{
printf("没有找到这个数!");
}