一个有趣的小问题,我们使用二分查找时,每次都等分查找区间。这有什么内在原因吗?可不可以分为其他的比例,如分成1/3和2/3长的区间?
答案是简单的:假设某次查找时,原区间长度是,我们将区间分为
和
的长度,其中
。
那么这次查找后剩余的区间长度是多少呢?因为我们不知道查找的元素具体在哪个区间,可以从概率角度计算其期望:有 的概率落在长度为
的区间,有
的概率落在长度为
的区间。期望长度是:
由二次函数知识可以知道,在 时,期望长度
取得最小值。