思路:类似游戏:最快找出目标数(从中间开始比较目标数,每次将范围减半,直至找出目标数)定义三个指针分别指向头尾中间,当头指针大于或等于尾指针时进入循环,循环中设置中间指针,并与目标数比较,根据结果进行三种操作(相等则跳出循环并返回,不相等则更改头尾指针)若没有在循环中跳出并返回,则表示数组中没有目标值。最终结果中l永远比r前一位,当没有目标值时,l则为插入位置,所以返回l。
二分的三点:1.循环条件(当头大于尾的时候,才表示已经将存在的可能性查找完毕) 2.调整的时候是mid加1或减1(容易出错和混乱) 3.循环结束时,l指向于大于要查找的数的第一个位置。