Time complexity 函数的复杂度类,其执行时间和输入大小之间具有已知的依赖关系
假设我试图找到一个函数的复杂性类。每次计算函数时,我的数据集都会翻倍,每次发生这种情况时,执行函数所需的时间都会增加(X)倍 如果我们知道(X),我们如何找到函数的复杂性类/O表示法?例如,如果X略大于2,则大O表示法为O(N logn)。假设Time complexity 函数的复杂度类,其执行时间和输入大小之间具有已知的依赖关系,time-complexity,complexity-theory,Time Complexity,Complexity Theory,假设我试图找到一个函数的复杂性类。每次计算函数时,我的数据集都会翻倍,每次发生这种情况时,执行函数所需的时间都会增加(X)倍 如果我们知道(X),我们如何找到函数的复杂性类/O表示法?例如,如果X略大于2,则大O表示法为O(N logn)。假设T(N)是您所讨论的函数的时间复杂度,其中N是输入数据的大小。我们可以为T(n)编写递归方程: 其中,X是常数。让我们“展开”这个递归: T(n) = X * T(n/2) = X^2 * T(n/4) = X^3 * T(n/8) = ... = X^k
T(N)
是您所讨论的函数的时间复杂度,其中N
是输入数据的大小。我们可以为T(n)
编写递归方程:
其中,X
是常数。让我们“展开”这个递归:
T(n) = X * T(n/2) = X^2 * T(n/4) = X^3 * T(n/8) = ... = X^k * T(n/2^k)
当参数k
变大到足以满足以下条件时,展开过程应结束:
n/2^k = 1
这意味着n=2^k
或k=log(n)
(对数以2为底)。我们还可以假设:
T(1) = C
其中,C
是另一个常数。现在我们来看展开的方程,用log(n)
替换k
,用C
替换T(1)
:
T(n) = X^log(n) * C
我们可以使用对数特性简化此公式:
T(n) = C * n^log(X)
假设T(n)
是您正在讨论的函数的时间复杂度,其中n
是输入数据的大小。我们可以为T(n)
编写递归方程:
其中,X
是常数。让我们“展开”这个递归:
T(n) = X * T(n/2) = X^2 * T(n/4) = X^3 * T(n/8) = ... = X^k * T(n/2^k)
当参数k
变大到足以满足以下条件时,展开过程应结束:
n/2^k = 1
这意味着n=2^k
或k=log(n)
(对数以2为底)。我们还可以假设:
T(1) = C
其中,C
是另一个常数。现在我们来看展开的方程,用log(n)
替换k
,用C
替换T(1)
:
T(n) = X^log(n) * C
我们可以使用对数特性简化此公式:
T(n) = C * n^log(X)
不够清楚。请阅读并尝试生成一个。不够清晰。请阅读并试着制作一份报告。