Algorithm 运行时分析澄清

Algorithm 运行时分析澄清,algorithm,runtime,big-o,analysis,logarithm,Algorithm,Runtime,Big O,Analysis,Logarithm,我只是想澄清一下。如果您有一个调用3个不同函数的算法。每个函数都有一个logn运行时。算法的运行时间是bigO(logn)正确吗?bigO的定义是f(n)=O(g(n))意味着存在正常数c和k,因此0≤ f(n)≤ 所有n的cg(n)≥ K对于函数f,c和k的值必须是固定的,并且不得依赖于n。对于这种情况。我们可以将c视为3个函数,而g(n)是logn?这取决于算法如何调用这些函数。如果算法看起来像 函数算法(输入){ f(输入’;//输入大小’=O(输入大小) g(输入“”);//输入“”的

我只是想澄清一下。如果您有一个调用3个不同函数的算法。每个函数都有一个logn运行时。算法的运行时间是bigO(logn)正确吗?bigO的定义是f(n)=O(g(n))意味着存在正常数c和k,因此0≤ f(n)≤ 所有n的cg(n)≥ K对于函数f,c和k的值必须是固定的,并且不得依赖于n。对于这种情况。我们可以将c视为3个函数,而g(n)是logn?

这取决于算法如何调用这些函数。如果算法看起来像


函数算法(输入){
f(输入’;//输入大小’=O(输入大小)
g(输入“”);//输入“”的大小=(输入的大小)
h(输入“”);//输入“”的大小=O(输入大小)
}


然后,运行时间是算法调用的函数的运行时间之和。因此,如果
f
g
h
在时间上运行
O(logn)
,那么算法也在时间上运行
O(logn)

假设您的函数是
f(n)
,它调用的3个函数是
f_1(n)、f_2(n)
f_3(n)
。还设
T(f(n))
f(n)
的运行时间


如果对于任何
i
,函数
f_i(n)
有运行时间
O(log(n))
,则根据定义,它意味着存在
c_i>0
n_i>=0
,这样对于所有
n>=n_i
T(f_i(n))=0,c>0,这样对于所有
n=n0
T(f(n))都是正确的。