图 4.1 包含了一个这么工作的函数。其实这两个函数: bin-search 设置初始范围及发送控制信号给 finderfinder 寻找向量 vecobj 是否介于 start 及 之间。

    如果要找的 range 缩小至一个元素,而如果这个元素是 obj 的话,则 finder 直接返回这个元素,反之返回 nil 。如果 range 大于 1 ,我们設置 middle ( 返回离实参最近的整数) 為 obj2 。如果 obj 小于 obj2 ,则递归地往向量的左半部寻找。如果 obj 大于 obj2 ,则递归地往向量的右半部寻找。剩下的一个选择是 obj=obj2 ,在这个情况我们找到要找的元素,直接返回这个元素。

    我们可以观察被搜索的元素的数量,是每一步往左减半的: