binarySearch

版本A

Rank mi = (lo + hi) >> 1;
if (e < A[mi])
    hi = mi;
else if (A[mi] < e)
    lo = mi + 1;
else
    return mi;

版本B

while (1 < hi-lo){
    Rank mi = (lo + hi) >> 1;
    (e < A[mi]) ? hi = mi : lo = mi;//深入[lo, mi) || [mi, hi)段继续查找
}

版本C

while (lo < hi){
    Rank mi = (lo + hi) >> 1;
    (e < A[mi]) ? hi = mi : lo = mi + 1;//[lo,mi) || (mi, hi)
}

 

全部评论

相关推荐

头像
10-27 15:50
门头沟学院 Java
想进开水团喝开水:有一种店 只能外卖 不能堂食 你猜为什么
点赞 评论 收藏
分享
冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务