C++STL二分搜索算法

Posted 机房日子青少年编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++STL二分搜索算法相关的知识,希望对你有一定的参考价值。

    

    C++ STL中二分查找的函数有 3 个: 

    这三个函数的参数都有三个,分别是数据集合的左端点,数据集合的右端点,查找的值,注意这些左端点右端点是要求左闭右开原则的,就是和数学上的左闭右开区间[a, b)。

    

        

    一个数组arr[]={4,10,11,30,69,70,96,100}设要插入数字3,9,101,pos为要插入的位置的下标   

    p = lower_bound( arr, arr+ 8, 3) - arr,p= 0.即arr数组的下标为0的位置。

    p= lower_bound( arr, arr+ 8, 101) -arr, p= 8,即arr数组的下标为8的位置(但下标上限为7,所以返回最后一个元素的下一个元素)。

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

int main() {

    vector<int> t;

    t.push_back(4);

    t.push_back(25);

    t.push_back(11);

    t.push_back(48);

    t.push_back(69);

    t.push_back(72);

    t.push_back(96);

    t.push_back(100);

    sort(t.begin(),t.end());

    for(auto i:t)

        cout<<i<<" ";

    cout<<endl;

    int low=lower_bound(t.begin(),t.end(),3)-t.begin();

    int upp=upper_bound(t.begin(),t.end(),101)-t.begin();

    cout<<low<<endl;

    cout<<upp<<endl;

    return 0; ;

}

 运行结果:





以上是关于C++STL二分搜索算法的主要内容,如果未能解决你的问题,请参考以下文章

算法总结二分搜索

STL基础--算法(已排序数据的算法,数值算法)

二分查找算法

递归/回溯/深度优先搜索/广度优先搜索 /动态规划/二分搜索/贪婪算法

网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归搜索二分搜索简单排序

VC++调用STL算法函数有效提升STL列表的搜索速度(附源码)