今天我们来探讨一下二分查找的易错点和错误情况。首先我们知道二分法查找适用于有序数组或者顺序表。本文简单的以有序数组做例子,依次查找0,1,2,3,4,5,6,7,8,9,10是否存在,存在则输出数字所在的数组下标值,不存在则输出-1来表示。
下面我们来梳理一下二分法查找的逻辑。
举例说明二分查找的形式如下所示:
经过测试发现递归和非递归二分查找的结果相同,只有当改变二分查找的指针范围、循环结束条件及指针走向趋势,才可能会导致错误。下面我们来分步改变这三个条件,而其他条件不改变。从而得到可能会出现的错误类型。整理如下:
指针范围 |
循环结束条件 |
指针走向趋势 |