因此,其时间复杂度是线性的PUZZLE的一个例子是在数组中搜索特定值的问题:很容易证明你不能用少于n个比例来做,并且我们有一个算法它以精确的线性时间O(n)解决了这个问题。
答案 0 :(得分:2)
二次方:给定一个N个整数的列表和一对整数上的任意布尔函数f
,确定列表中是否存在x, y
个整数f(x, y) = true
f
。
指数:给定一组N个整数和一组整数上的任意布尔函数S
,确定是否存在从列表中取得的f(S) = true
整数集{{1}}
在每种情况下,我们可以通过考虑所有对/子集来解决问题。在每种情况下,如果函数是任意的并且作为输入提供,我们可以做得更好。时间复杂度当然受到函数编码的影响,但这是固定的w.r.t.列表的大小。
您可能会反对我们可以构建一个通用的"函数调整器"更智能地查找对/子集。然而,由于停止问题的不可判断性,这是不可能的:对于任意程序,很难分辨它做什么(或者,对于任意函数) ,很难说出它的计算方法。