zoukankan      html  css  js  c++  java
  • lower_bound( ) 与 upper_bound( )

    lower_bound( ) 与 upper_bound( )

    这两个函数是用二分查找的方式,在一个排好序的数组中进行查找,返回值是地址。

    如果数组为从小到大的顺序排列的话:

    • lower_bound :lower_bound( begin,end,num),在begin到end-1之间,二分查找第一个大于或等于num的数字,不存在返回end

    • upper_bound :upper_bound( begin,end,num),在begin到end-1之间,二分查找第一个大于num的数字,不存在返回end

    如果数组为从大到小的顺序排列的话,则需要重载:

    • lower_bound ( begin,end,num,greater() ),在begin到end-1之间二分查找第一个小于或等于num的数字,不存在返回end
    • upper_bound ( begin,end,num,greater() ),在begin到end-1之间二分查找第一个小于或等于num的数字,不存在返回end

    因为返回值是地址,所以一般再减去begin,获得要寻找的数字的下标

    int pos = lower_bound ( arr , arr + length , num ) -arr ;
    
  • 相关阅读:
    Java的反射机制
    并发编程--锁--悲观锁和乐观锁
    SpringCloud --服务调用Feign
    微服务
    项目中处理数据常用Excel公式
    接口参数选择
    你真会看idea中的Log吗?
    MySQL--索引
    Redis介绍
    MySQL--SQL执行顺序,Explain
  • 原文地址:https://www.cnblogs.com/Salty-Fish/p/12493661.html
Copyright © 2011-2022 走看看