2018-08-24

图片发自简书App

思路:类似游戏:最快找出目标数(从中间开始比较目标数,每次将范围减半,直至找出目标数)定义三个指针分别指向头尾中间,当头指针大于或等于尾指针时进入循环,循环中设置中间指针,并与目标数比较,根据结果进行三种操作(相等则跳出循环并返回,不相等则更改头尾指针)若没有在循环中跳出并返回,则表示数组中没有目标值。最终结果中l永远比r前一位,当没有目标值时,l则为插入位置,所以返回l。

二分的三点:1.循环条件(当头大于尾的时候,才表示已经将存在的可能性查找完毕) 2.调整的时候是mid加1或减1(容易出错和混乱) 3.循环结束时,l指向于大于要查找的数的第一个位置。

图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容