程序员必须掌握的十种算法---二分查找算法

来源:互联网 发布:淘宝网唯品会 编辑:程序博客网 时间:2024/05/23 15:19

二分查找算法核心代码简单,但需要数组是经过排序的。

/**arr:要查找的数组*length:数组的长度*value:要查找的值*/int search(int *arr,int length,int value){    int head=0;    int tail=length-1;    int middle;    //循环条件(算法核心代码)    while(head<=tail)    {        middle=(head+tail)/2;        if(arr[middle]>value)            //如果中间值比value大,那么value如果存在,应该位于head~middle-1之间            tail=middle-1;        else            if(arr[middle]<value)                //如果中间值比value小,那么value如果存在,应该位于middle+1~tail之间                tail=middle+1;            else                return middle;    }    return -1;}int main(){    int arr[100];    int length;    int value;    scanf("%d",&length);//输入数组长度    for(int i=0;i<length;i++)//输入数组数据(按升序排列)        scanf("%d",&arr[i]);    scanf("%d",&value);    int result = search(arr,length,value);    if(result!=-1)        printf("find it, position: %d",result);    else        printf("not exit.");    getchar();    return 0;}
0 0
原创粉丝点击