作者 郭聪
问题 运用二分法快速的查找数字
#include <stdio.h>
#include <stdlib.h>
#define N 10
int binary_search(int arr[],int n,int key)
{
int index=-1;
int first=0,last=n-1,mid;
while(first<=last)
{
mid=(first+last)/2;
if(key==arr[mid])
{
index=mid;
break;
}
else if(key>arr[mid])
{
first=mid+1;
}
else
last=mid-1;
}
return index;
}
int main()
{
int date[N]={0,1,2,3,4,5,6,7,8,9};
int key,index=-1;
printf("Enter a key you want to search;");
scanf("%d",&key);
index=binary_search(date,N,key);
if(index>=0)
printf("%d",index);
else
printf("no");
return 0;
}
总结 期末考试时遇到而且还是填空题,并且在书上能找到原题,可是却没做出来;这就使我明白,一定要加强课本上的阅读,如果连课本上的例题都不会做又怎么能解决别的题目呢