本篇文章将介绍折半查找算法。
何为折半查找?
上一篇文章介绍了顺序查找算法,我们知道,虽然顺序查找算法适用性高,但效率太低,那么能不能在此基础上继续提高算法的效率呢?
这个时候,折半查找诞生了,它的原理是每次都将待查找的记录所在的区间缩小一半,比如:
若要在该序列中查找元素值4,折半查找是如何做到的呢?
它需要先设置两个游标,一个指向最左边,一个指向最右边:
这两个游标所表示的范围即为查找区间,初始我们在下标为1到10的区间内查找,这个查找也是讲究方法的,不是一个一个地去遍历查找。
我们还需要借助一个游标,用它来表示区间的中间位置:
这个mid表示的就是区间的中间位置,计算方法为:(low + high) / 2
。
此时我们让待查找元素值与中间位置元素值比较,若相等,则查找成功,直接返回mid值;
若不相等,此时分为两种情况,待查找元素值比mid位置的元素值大或者比