二分查找的确是个很不错的算法,虽然简单,但是边界容易出错。
书中最初的二分查找l和u(我的代码中是r)对应数组中最小下标和最大下标,即l=0,u=n-1,数组为arr[l..u]。而后面优化的代码中l和u就变成了最小下标-1和最大下标+1了,即l=-1,u=n,数组为arr[l+1...u-1]。不太明白其中深刻含义,我试了一下l=0,u=n(Python中范围都是这么表示),发现第二段代码(即找出t的第一处位置)实现不出来,用原来的代码在数组只剩下1个或2个元素的时候会出现死循环。书中最初的二分查找l和u(我的