查找算法之插值查找

参考:

1. 七大查找算法 | 博客园

二分查找算法是傻瓜式的将待查找序列一分为二进行查找,直到找到或者查找失败。插值查找算法,是针对待查找序列均匀分布特点、结合二分查找算法进行改进的一种自适应查找算法。

一般的,二分查找范围一个很重要的点

middle = (left + right)/2

而插值查找,可根据目标元素在待查找序列中的到边界值的大小来估算到边界的距离,通过估算的距离快速缩小目标所在序列的范围,即

middle = left + (target - a[left]) / (a[right] - a[left]) * (right - left)

 例程,递增序列a = [3, 6, 9, 12, 20, 25, 30 ,36],待查找目标t=25

代码python

猜你喜欢

转载自www.cnblogs.com/fortunely/p/9625216.html