折半查找某个数是该数组中第几个元素的值

#include<stdio.h>
#define N 15
int main()
{
    int a[N]={1,3,4,5,6,8,12,23,34,44,45,56,57,58,68},i,mid,start,end,number,flag=0;
    scanf("%d",&number);
    start=0;
    end=N-1;
    while(start<=end)//必须有等于号
    {
        mid=(start+end)/2;
        if(number<a[mid])
             end=mid-1;
        else if(number>a[mid])
            start=mid+1;
        else
        {
            flag=1;
            printf("第%d个元素的值\n",mid+1);
            break;
        }

    }
    if(flag==0)
          printf("not found\n");
    return 0;
}

发布了89 篇原创文章 · 获赞 24 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/zhangxue1232/article/details/104825763