在博客看到一篇可以实现的代码,可以用的。记下链接,方便以后回顾。
这里是网址链接:http://blog.csdn.net/li_canhui/article/details/6820407
然后我自己改了一下,增加功能:可以自己输入排序好的数组。
#include <stdio.h>
int main(){
int a[200005];
int m,i,n,wei,b;
printf("输入排好序的整数个数:");
scanf("%d",&m);
printf("输入排好序的序列:\n");
for(i=0;i<m;i++){
scanf("%d",&a[i]);
}
printf("输入要查找的数字:");
scanf("%d",&b);
wei=binsearch(b,a,m);
if(wei==-1){
printf("没有找到该数字\n");
}
else{
printf("查找到该数字的位置为:%d\n",wei);
}
return 0;
}
int binsearch(int x, int v[], int n){
int low, high, mid;
low = 0;
high = n - 1;
while ( low <= high ) {
mid = (low + high) / 2;
if(x < v[mid]){
high = mid - 1;
}
else if(x > v[mid]){
low = mid + 1;
}
else{
return mid;
}
}
return -1;
}