【查找算法】折半查找法

本篇文章将介绍折半查找算法。

文章目录

  • 何为折半查找?
  • 算法实现
  • 递归实现
  • 效率分析

何为折半查找?

上一篇文章介绍了顺序查找算法,我们知道,虽然顺序查找算法适用性高,但效率太低,那么能不能在此基础上继续提高算法的效率呢?

这个时候,折半查找诞生了,它的原理是每次都将待查找的记录所在的区间缩小一半,比如:
【查找算法】折半查找法_第1张图片
若要在该序列中查找元素值4,折半查找是如何做到的呢?

它需要先设置两个游标,一个指向最左边,一个指向最右边:
【查找算法】折半查找法_第2张图片这两个游标所表示的范围即为查找区间,初始我们在下标为1到10的区间内查找,这个查找也是讲究方法的,不是一个一个地去遍历查找。

我们还需要借助一个游标,用它来表示区间的中间位置:
【查找算法】折半查找法_第3张图片
这个mid表示的就是区间的中间位置,计算方法为:(low + high) / 2

此时我们让待查找元素值与中间位置元素值比较,若相等,则查找成功,直接返回mid值;

若不相等,此时分为两种情况,待查找元素值比mid位置的元素值大或者比

你可能感兴趣的:(【查找算法】折半查找法)