zoukankan      html  css  js  c++  java
  • 算法竞赛模板 二分查找

    ①基础二分查找

    int BSearch(int R[],int low,int high,int val)
    {
        while(low<=high)
        {
            int mid=(low+high)/2;
            if(R[mid]==val) return mid;
            else if(R[mid]>val)
                high=mid-1;
            else low=mid+1;
        }
        return -1;
    }

    ②lower_bound函数与upper_bound函数

    (1) 在使用这两个函数前,必须保证该数组是非递减序列。

    (2) lower_bound(begin,end,num)

    从数组的begin位置到end-1位置二分查找第一个≥num的元素,找到则返回该元素的地址,不存在则返回end。

    (3) upper_bound(begin,end,num)

    从数组的begin位置到end-1位置二分查找第一个>num的元素,找到则返回该元素的地址,不存在则返回end。

    (4) 通过返回的地址减去起始地址begin,我们就可以得到该元素在数组中的下标。

  • 相关阅读:
    Font Awesome 中文网
    mobileselect学习
    JavaScript模块化
    webpack基本使用
    MVVM架构方式
    http-server开启测试服务器
    json-server模拟服务器API
    vue-router
    git的使用
    Vue生命周期
  • 原文地址:https://www.cnblogs.com/kannyi/p/9181740.html
Copyright © 2011-2022 走看看