首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >插值搜索中的中间计算?

插值搜索中的中间计算?
EN

Stack Overflow用户
提问于 2015-09-01 11:14:15
回答 2查看 2.9K关注 0票数 10

我知道插值搜索是对二进制搜索的一种改进,在二进制搜索中,通过计算,输入在每次迭代中被分成两等份。

代码语言:javascript
运行
复制
mid = (low + high) / 2

在插值搜索中,中间值被计算为

代码语言:javascript
运行
复制
mid = low + (key - arr[low]) * ((high - low) / (arr[high] - arr[low]))

现在我需要理解在插值搜索中计算mid的公式。

参考文献:实现

EN

Stack Overflow用户

发布于 2017-07-16 17:17:17

扩展到@ answer -另一个有趣的答案

他提出的方程是基于插值公式 (一条线的方程)。

现在,将f()视为接受索引并返回其y轴值的函数,

代码语言:javascript
运行
复制
y1 = f(low)
y2 = f(high)
x1 = low
x2 = high

(y - f(low)) = [(f(high) - f(low)) / (high - low)] * (x - low);

OR

x = low + [(high - low) * (y - f(low))] / (f(high) - f(low))

here: y = key
we are looking for position(value) of x.
票数 9
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32330185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档