Algorithm 如何确定此函数的运行时

Algorithm 如何确定此函数的运行时,algorithm,runtime,big-o,Algorithm,Runtime,Big O,我对运行时的基本理解有点问题,也许有人能帮我澄清一下。 如何确定此函数的运行时 我需要确定f=O(g)或f=omega(g)或f=theta(g) f(n)=100n+logn g(n)=n+(logn)2 因此100n和n的顺序相同;线性时间>对数时间此时我还需要查看日志部分吗?或者我可以确定f=theta(g)?你可以安全地确定它们是相同的数量级。无需查看“日志部分” 这里是这种特殊情况的形式证明,一般证明可以从极限运算中得到 让我们看看函数h(n)=f(n)/g(n)当n接近无穷大时,如果

我对运行时的基本理解有点问题,也许有人能帮我澄清一下。 如何确定此函数的运行时

我需要确定f=O(g)或
f=omega(g)
f=theta(g)

f(n)=100n+logn
g(n)=n+(logn)2


因此
100n
n
的顺序相同;线性<编码>时间>对数时间此时我还需要查看日志部分吗?或者我可以确定f=theta(g)?

你可以安全地确定它们是相同的数量级。无需查看“日志部分”

这里是这种特殊情况的形式证明,一般证明可以从极限运算中得到

让我们看看函数
h(n)=f(n)/g(n)
当n接近无穷大时,如果它保持在某个数字
m
的上方和下方,我们知道
f(x)=θ(g(x))
(因为θ是如何定义的)

所以我们有
h(n)=(100n+logn)/(n+logn^2)

我们知道,如果我们对任何实x证明了这一点,那么自然数也是如此。因此,这足以表明:

h(x)=(100x+logx)/(x+logx^2)

根据l'Hospital规则我们知道,如果命名子和分母的导数存在并收敛,则原函数的极限也存在并等于同一个数。让我们应用它并获得:

lim x-> infinity , h(x) = (100x + logx)/(x + logx^2) = 

lim x-> infinity , (100+1/x) / (1 + (2log(x) / x) ) 
我们知道,当x接近无穷大时,1/x接近0,(2logx)/x接近0,当x接近无穷大时(用你的话说(时间>对数时间))。我们从极限运算中得到

直线度x->无穷大h(x)=100/1=100


因为极限存在于R中,并且是非零的,所以我们得到了f(x)=θ(g(x)),这就是我们想要展示的。

@nhahdh-Holy,我读到的数据是f(x)=100n+log(n),这使得它更简单。谢谢你的邀请catch@nhahtdh谢谢,我更新了答案,让我知道你的想法。我认为这里没有任何问题。由于函数非常简单,因此直接得出
θ
的结论是没有坏处的。据我所知,这三个都是正确的。要证明这一点并不难。