标签:区间 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 )
标签:区间 code str arch 优化 二分 sea col lse
原文地址:https://www.cnblogs.com/Royzzzzz/p/11067027.html