感觉得在学习算法的同时写出自己的理解,遂开始写日常;
1.今天学了下二分查找
2.理解:
first:区间左闭右闭,维护左右都合法
更新left=mid+1,right=mid+1;
循环条件:left<=right;
second:区间左闭右开,维护左合法右非法
更新left=mid+1,right=mid;
循环条件:left<right;
third:区间左闭右开,维护左合法右非法,
更新left=mid,right=mid
循环条件:right-left>1;
如果找到,则下标为left
未找到,则该数在left,right之间
第三种方法可以直接找到小于该数最大值和大于该数最小值,推荐使用第三种方法