c语言二分法的使用

2012-11-01 09:14:09 · 作者: · 浏览: 400
    程序要求:
   
    使用二分法实现对输入数组字符的查找,并输入需要查找数字,返回需要查找数字在该数组的位置。若不存在则返回-1.
   
    程序如下:
   
    点击(此处)折叠或打开
   
    #include <stdio.h>
   
    #include <string.h>
   
    int binserch(int x,int v[],int n);
   
    int main()
   
    {
   
    int a;
   
    int buf[5];
   
    int x;
   
    int c;
   
    int i=0;
   
    int result;
   
    printf(“please input some num\n”);
   
    while((c=getchar())!=EOF&&c!='\n‘)
   
    buf[i++]=c;
   
    printf(“please input your want find num\n”);
   
    x=getchar();
   
    result=binserch(x,buf,i+1);
   
    printf(“result =%d\n”,result);
   
    return 0;
   
    }
   
    int binserch(int x,int v[],int n)
   
    {
   
    int low;
   
    int high;
   
    low = 0;
   
    high = n-1;
   
    int mid;
   
    while(low<=high)
   
    {
   
    mid = (low+high) /2;
   
    if(x>v[mid])
   
    low=mid+1;
   
    else if(x<v[mid])
   
    high=mid-1;
   
    else
   
    return mid;
   
    }
   
    return -1;
   
    }