插值搜索/排序

时间:2014-11-12 10:23:22

标签: sorting search interpolation

有人可以快速浏览插值搜索/排序。我做了一些搜索,根据我的理解,这意味着你可以根据某些东西的索引查找和项目。谁能解释一下这是如何工作的?可能还有例子?

我确信这非常简单,我只是在思考它。也是为什么在最坏的情况下。线性时间?谢谢!

1 个答案:

答案 0 :(得分:0)

插值搜索是二进制搜索的更加精彩的版本。二进制搜索的工作原理是找到一个中间索引,从中可以递归地查找目标元素。

如果您使用普通二进制搜索查看字典,您可以在" m"单词并比较您要查找的单词,并搜索之前或之后的单词。

插值排序为您提供了更好的起点,更准确地匹配人们搜索的方式。如果你在字典中寻找Aardvark这个词,你不会从M开始,而是从头开始。

要找到更准确的起始中位数插值排序,请使用以下公式计算中位数:

m = l + (r - l) * (x * a[l]) / (a[r] - a[l])

其中:

m is the midpoint
a is the array you are searching in
l is the left endpoint (ie 0)
r is the right endpoint (ie length of array)
x is the target element