折半查找(二分法)

来源:互联网 发布:lazada卖家数据分析 编辑:程序博客网 时间:2024/04/28 12:52

二分法查找(对有序的数列才可以使用)

//二分法查找必须是对有序的数列#include<stdio.h>#define n 20int main(){    int a[n]={2,3,5,7,8,11,13,16,17,23,25,31,34,37,38,40,42,47,48,50} ;  //定义区间内有十个整数    int x,h,l,m;               //x为要输入的数字,h表示最大的位数,l表示最小的位数,m表示中间位的位数    scanf("%d",&x);    h=n-1;    l=0;    m=(h+l)/2;    while(a[m]!=x&&l<h)    {        if(x>a[m])            l=m+1;        else            h=m-1;    m=(h+l)/2;    }    if(x==a[m])        printf("FOUND %d %d\n",x,m);    else        printf("NOT FOUND!\n");    return 0;}
1 1
原创粉丝点击