码迷,mamicode.com
首页 > 其他好文 > 详细

1.给定区间的二分查找

时间:2019-06-21 22:25:55      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:区间   code   str   arch   优化   二分   sea   col   lse   

template<typename T>
inline Rank Vector<T>::search(T const & e, Rank lo, Rank hi) const
{
    Rank mid = (hi - lo) >> 1;
    if (e < _elem[mid])
        hi = mid;
    else if (_elem[mid] < e)
        lo = mid + 1;
    else return mid;
    return -1;
}

1.1.优化代码(或者说增加代码可理解性)的一点

这里我们用的两个判断语句分支都用的是小于号,可以理解为,当 e < _elem[mid] , 关键码在序列的左边,反之,在右边。

1.2.复杂度

最差的情况为n/2不断的递减,也可以理解为log n 不断的减少一层找到最后的关键码(类似于树的深度)。

复杂度是  O(log n )

1.给定区间的二分查找

标签:区间   code   str   arch   优化   二分   sea   col   lse   

原文地址:https://www.cnblogs.com/Royzzzzz/p/11067027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!