天之道

享受编程的乐趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

二分搜索算法

Posted on 2012-09-16 00:05 hoshelly 阅读(622) 评论(0)  编辑 收藏 引用 所属分类: DS && Algorithm
二分搜索算法的使用前提条件是表中的数已经是有序的,如果还没排好序,则不能用二分搜索算法。


int search(int a[],int v,int l,int r) //在数组a[]内查找v,l为左下标,r为右下标
{
    while (r>=l)
    {
        int m=(l+r)/2; //每次取数组的一半,此处要加1
        if(v == a[m]) //如果查找到v,则返回下标m
            return m;
        if(v < a[m])  //如果v小于此时的数,则右下标变成r=m-1,去掉数组中一半的数,反之亦然
            r=m-1;
        else 
            l=m+1;
    }
    return -1;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理