Algorithm 运行时分析澄清
我只是想澄清一下。如果您有一个调用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?这取决于算法如何调用这些函数。如果算法看起来像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(输入“”);//输入“”的
函数算法(输入){
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))都是正确的。