【发布时间】:2015-11-26 14:32:31
【问题描述】:
我知道插值搜索是对二分搜索的修改,在二分搜索中,输入在每次迭代中通过计算分成相等的两半
mid = (low + high) / 2
在插值搜索中,中间值计算为
mid = low + (key - arr[low]) * ((high - low) / (arr[high] - arr[low]))
现在我需要了解插值搜索中计算mid的公式。
参考:https://en.wikipedia.org/wiki/Interpolation_search#Sample_implementation
【问题讨论】:
-
假设
low = 10、high = 20、arr[low] == 100和arr[high] == 200。现在为key == 110、key == 150和key == 190计算mid。 -
@Henrik 但是这个公式是如何推导出来的?