码迷,mamicode.com
首页 > 其他好文 > 详细

二分搜索

时间:2018-10-14 00:36:07      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:二分搜索   简单的   循环   return   lse   区间   sum   搜索   现在   

很简单的算法,现在用的是循环的形式的。注意中间变量设置成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;
}

二分搜索

标签:二分搜索   简单的   循环   return   lse   区间   sum   搜索   现在   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!