首页 > 其他 > 详细

二分搜索

时间:2018-10-13 23:40:30      阅读:157      评论:0      收藏:0      [点我收藏+]

很简单的算法,现在用的是循环的形式的。注意中间变量设置成x+(y-x)/2(紫书上说为了确保靠近区间起点)左边变大设置成x=t+1;右边变小设置成y=t;

代码(基本思路,可以随意转换实现历程)

int bs(int n)
{
    int sum=1;
    int x=1;
    int y=1000;
    int t;
    while(x<y)
    {
        t=x+(y-x)/2;
        if(t==n)
        {
            num[p++]=t;
            break;
        }
        else if(t<n)
        {
            num[p++]=t;
            x=t+1;
        }
        else if(t>n)
        {
            num[p++]=t;
            y=t;
        }
        sum++;
    }
    return sum;
}

二分搜索

原文:https://www.cnblogs.com/baccano-acmer/p/9784644.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!