• lower_bound与upper_bound()用法笔记


    lower_bound与upper_bound()用法笔记
    原创正牌东风 最后发布于2018-07-23 21:10:23 阅读数 965 收藏
    展开
    头文件

    #include <algorithm>

    using namespace std;

    lower_bound与upper_bound()查找一个元素的时间复杂度为O(log n);

    一、数组中的lower_bound与upper_bound()
    对于从小到大排序好的整型数组a[n],假设有a[5]={0,2,3,3,5},对于要查找的整型数val,有

    1)int i=lower_bound(a,a+n,val)-a;

    其中i返回值为数组中元素值大于等于val的第一个下标,相应地,如果数组中所有元素的值都小于val,则返回值为数组最后一个元素下标的下一个下标(另外一种说法是:i的返回值为val可以插入a数组的最前的位置)。

    val=2,i=1;

    val=3,i=2;

    val=6,i=5;

    2) int i=upper_bound(a,a+n,val)-a;

    其中i返回值为数组中元素值大于val的第一个下标,相应地,如果数组中所有元素的值都小于等于val,则返回值为数组最后一个元素下标的下一个下标(另外一种说法是:i的返回值为val可以插入a数组的最后的位置)。

    val=2,i=2;

    val=3,i=4;

    val=6,i=5;
    ————————————————
    版权声明:本文为CSDN博主「正牌东风」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/clz16251102113/java/article/details/81173950

    对lower_bound的理解
    原创imagination_wdq 最后发布于2018-12-03 13:34:00 阅读数 1001 收藏
    展开
    头文件:algorithm

     lower_bound()返回值是一个迭代器,返回指向比key大的第一个值的位置

    第一个用法:返回值的下标。

    #include <algorithm>
    #include <iostream>
    using namespace std;
    int main()
    {
    int a[]={1,2,3,4,5,7,8,9};
    printf("%d",lower_bound(a,a+8,6)-a);
    //如果key是最大的,则返回值为数组的长度

    return 0;
    }
    第二个用法:返回值的大小。

    #include <algorithm>
    #include <iostream>
    using namespace std;
    int main()
    {
    int a[]={1,2,3,4,5,7,8,9};
    printf("%d",*lower_bound(a,a+8,6));
    //如果key是最大的,返回值为0
    return 0;
    }
     
    ————————————————
    版权声明:本文为CSDN博主「imagination_wdq」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_42391248/java/article/details/84760477

  • 相关阅读:
    Core Java Interview Question Answer
    Anagrams
    Permutations II
    Minimum Window Substring
    工厂模式
    How do you design object oriented projects?
    What is Object Oriented Design? (OOD)
    Amazon Interview Question: Design an OO parking lot
    讨论一道求质数的面试题
    Substring with Concatenation of All Words
  • 原文地址:https://www.cnblogs.com/WAsbry/p/12688059.html
Copyright © 2020-2023  润新知