【发布时间】:2014-08-26 16:04:48
【问题描述】:
def find_closest(data, target, key = lambda x:f(x))
这是我的函数定义,其中数据是一组值,我想在尽可能少数次评估中找到评估最接近目标的值,即abs(target-f(x)) 是最小值。 f(x) 是单调的。
我听说二进制搜索可以在 O(log(n)) 时间内完成,python 中是否有库实现?有没有更高效的搜索算法?
编辑:我希望在评估 f(x) 方面尽量减少复杂性,因为那是昂贵的部分。我想找到用 f(x) 评估时最接近目标的数据中的 x。 data在f的域内,target在f的范围内。是的,数据可以快速排序。
【问题讨论】:
-
您需要对
data进行排序以具有 O(log(n)) 复杂度。在您的问题中描述data -
你的意思是
lambda x:f(x)?