查找对象:顺序存储的有序表。
思路:由于查找的表是有序的(假设是从小到大),地址在中间位置的元素必然在排序中也属于中间次序。
step1:设置两个指针,一个(low)指向第一个元素,另一个(high)指向最后一个元素。
step2:找到中间元素(mid=(low+high)/2)与要查找的元素比较。
step3:若相等,万事大吉,返回当前位置(mid);
若该元素大于目标元素,说明目标元素在左侧,指针high=mid-1,查找左边;
若该元素小于目标元素,说明目标元素在右侧,指针low=mid+1,查找右侧。
step4:重复step2、step3,指针查找到目标元素。
代码实现:
1 | /** 二分查找 |