折半查找

来源:互联网 发布:苏州掌智科技淘宝店 编辑:程序博客网 时间:2024/06/08 04:06

折半查找的实现
注:输入为有序数组

#include <stdio.h> #define Max 20int main(){    int a[Max];    int n,l,r,i,ser,mid;    printf("请输入数组的长度:");    scanf("%d",&n);    for(i=0;i<n;i++){        scanf("%d",&a[i]);    }    while(1){    printf("   请输入要查找的数字:");    scanf("%d",&ser);    r=n;    l=0;    while(l<=r){        mid=(r+l)/2;        if(a[mid]==ser){        printf("ser=%d查找成功,所在位置为第%d个",ser,mid+1);        break;        }        else if(ser<a[mid]){            r=mid-1;        }        else if(ser>a[mid]){            l=mid+1;        }    }     if(r<l)    printf("不存在%d这个数",ser);}    return 0;}
0 0
原创粉丝点击