Sorting 插值搜索/排序

Sorting 插值搜索/排序,sorting,search,interpolation,Sorting,Search,Interpolation,有人能给我一个快速浏览一下什么是插值搜索/排序吗。我做过一些搜索,据我所知,这意味着你可以根据某个东西的索引来查找和分类。有人能解释一下这是怎么回事吗?有可能是一个例子吗 我相信这非常简单,我只是想得太多了。还有为什么在最坏的情况下是这样。线性时间?谢谢 插值搜索是二进制搜索的一个更奇特的版本。二进制搜索的工作原理是找到一个中间索引,从中递归查找目标元素 如果你正在使用普通的二进制搜索查找字典,你会在m个单词处打开字典,比较你要查找的单词,或者搜索前面或后面的单词 插值排序为您提供了一个更好的起

有人能给我一个快速浏览一下什么是插值搜索/排序吗。我做过一些搜索,据我所知,这意味着你可以根据某个东西的索引来查找和分类。有人能解释一下这是怎么回事吗?有可能是一个例子吗


我相信这非常简单,我只是想得太多了。还有为什么在最坏的情况下是这样。线性时间?谢谢

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

如果你正在使用普通的二进制搜索查找字典,你会在m个单词处打开字典,比较你要查找的单词,或者搜索前面或后面的单词

插值排序为您提供了一个更好的起点,更准确地匹配人们的搜索方式。如果你在字典里寻找土豚这个词,你不会从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