二分查找的有关函数
发布日期:2022-02-10 08:11:04 浏览次数:16 分类:技术文章

本文共 572 字,大约阅读时间需要 1 分钟。

lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置。

upper_bound(起始地址,结束地址,要查找的数值) 返回的是第一个大于待查找数值 出现的位置。

binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在这么一个数,是一个bool值。

  • 函数lower_bound()

功能:函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置.

注意:如果所有元素都小于val,则返回last的位置,且last的位置是越界的!!

  • 函数upper_bound()

功能:函数upper_bound()返回的在前闭后开区间查找的关键字的上界,返回大于val的第一个元素位置

注意:返回查找元素的最后一个可安插位置,也就是“元素值>查找值”的第一个元素的位置。同样,如果val大于数组中全部元素,返回的是last。(注意:数组下标越界)

注意:在查找的数组中要事先排好序!!!

使用:

int n;int a[n];sort(a, a + n);int l = lower_bound(a ,a + n, b) - a;//在a数组中查找数值为b的下标//注意要减去数组首地址

转载地址:https://blog.csdn.net/qq_43567222/article/details/114481850 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:CodeForces-Magic Numbers
下一篇:AtCoder-Not Divisible

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月26日 06时52分09秒