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

二分查找的边界条件

时间:2019-02-03 23:58:29      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:===   var   12px   ali   width   div   二分查找   font   循环   

var start = 0;  var end = nums.length - 1;  // 初始条件
    var mid = 0;
    while(start <= end) {   // 循环条件
        mid2 = Math.floor((start + end) / 2);  // 取整方式
        if (target > nums[mid]) {   // 判断条件
            start = mid + 1             // 判断条件
        } else if (target < nums[mid]) {   // 判断条件
            end = mid - 1    // 判断条件
        } else {                // 判断条件
            return mid          //判断条件
        }
    }
    return -1    //收尾

 

条件\区间 ( )开区间 (]  左开右闭 [) 左闭右开 [] 闭区间
任意一点 任意一点 任意一点 任意一点 最左的点 最右的点
初始条件 start

-1 

-1

0  

0  

end

nums.length

nums.length-1

nums.length

nums.length-1

循环条件

start < end - 1  

start < end  

start < end   

start <= end   

start < end  

start < end  

最后一次循环

(a,b,c)

(a,b]

[a,b)

[a]

[a,b]

[a,b]

取整方式 向上/向下 向上

向下

向上/向下 向下 向上
判断条件

target >

nums[mid]

start = mid

start = mid

start = mid+1

start = mid+1

start = mid+1

start = mid

target ===

nums[mid]

return mid

return mid

return mid

return mid

end = mid

target <

nums[mid]

end = mid

end = mid-1

end = mid

end = mid-1

end = mid-1

收尾retrun

-1

-1 -1 -1

nums[end] === target ? end : -1

或 nums[start] === target ? start : -1

二分查找的边界条件

标签:===   var   12px   ali   width   div   二分查找   font   循环   

原文地址:https://www.cnblogs.com/natsu07/p/10351118.html

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