2. 基础查找算法——插值查找(golang)

本文介绍了插值查找算法的核心思想,指出在查找过程中,枢轴位置不再总是中间值,而是根据查找值与范围边界的关系确定。插值查找利用公式`mid = low + (high - low) * (key - data[low]) / (data[high] - data[low])`来计算中间位置。文章还提及了在英文字典中查找单词时应用类似策略的例子,并提供了Golang的代码实现。
摘要由CSDN通过智能技术生成

插值查找


插值查找的核心思想


关键词: 插值

在前面的二分查找法里,中间值是简单的(low+high) / 2

假设你在英文字典查找单词apple,你会怎么查呢?很显然你不会从中间开始查找,而是有目的地往前或者往后去翻。

也就是说,枢轴不应该是绝对的中间值,而是应该根据查找值与最大最小值的关系去确认枢轴。

插值公式:

mid := (low + high) / 2
mid = low + (high - low) * 1/2
假设data位于中间值与high之间,则:
mid = low + (high - low) * (data-low) / (high - low)


代码实现

func MidSearch(arr []int,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值