摘要: 二分查找的确是个很不错的算法,虽然简单,但是边界容易出错。书中最初的二分查找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个元素的时候会出现死循环。所以,我索性用最原始的表示方法实现了后面几个优化代码,并做了个时间测试程序(脚手架)来看运行时间。原二分查找:原二 阅读全文
posted @ 2013-03-14 22:48 particle 阅读(2352) 评论(0) 推荐(0) 编辑