Performance 当常数似乎确实影响算法的复杂度时,我如何确定算法的时间复杂度?

Performance 当常数似乎确实影响算法的复杂度时,我如何确定算法的时间复杂度?,performance,algorithm,big-o,time-complexity,Performance,Algorithm,Big O,Time Complexity,举个例子: 如果我有n*(lgn)/lg(lg(n)) 相比 5000n 无论n值有多高,5000n值总是更高。但如果我去掉常数,则相反。但我一直认为,在事物的大计划中,常数相乘被忽略了(5000n将被认为是n),这将导致5000n被认为更小,而它似乎更大 当被问及哪些是更差的时间复杂度算法时,我如何回答? 要记住的是,当人们比较复杂性时,他们几乎总是考虑到渐近复杂性,也就是说,大于 N< /代码>变得非常大。 在这种情况下,尽管对于基本上任何合理的n值5000n>n*log n/log log

举个例子:

如果我有n*(lgn)/lg(lg(n))

相比

5000n

无论n值有多高,5000n值总是更高。但如果我去掉常数,则相反。但我一直认为,在事物的大计划中,常数相乘被忽略了(5000n将被认为是n),这将导致5000n被认为更小,而它似乎更大


当被问及哪些是更差的时间复杂度算法时,我如何回答?

要记住的是,当人们比较复杂性时,他们几乎总是考虑到渐近复杂性,也就是说,大于<代码> N< /代码>变得非常大。

在这种情况下,尽管对于基本上任何合理的
n
5000n>n*log n/log log n
,后者仍然具有更高的复杂性


堵塞,我得到了一个关于<代码> n=2×10 ^ 23683 < /代码>的答案(点击“近似形式”),当然,<>代码> 5000 0n*log n/log log n >

记住的是,当人们比较复杂性时,他们几乎总是考虑到渐近复杂性,也就是说,当
n
变得非常大时,它会变得更大

在这种情况下,尽管对于基本上任何合理的
n
5000n>n*log n/log log n
,后者仍然具有更高的复杂性


插话给了我一个关于
n=2*10^23683
(点击“近似形式”)的答案,果然,
5000n
的答案。

在渐进复杂性分析中故意忽略常数乘数。对于算法的分析,抽象地说,很难计算它们——它们取决于计算机行为随时间变化的实际方面


选择算法时,渐近复杂度仅是考虑的一个指标。估计或测量预期问题规模的实际时间也很重要。如果随着问题规模的增加,算法将急剧变慢,则渐进复杂性会发出警告。

在渐进复杂性分析中故意忽略常数乘数。对于算法的分析,抽象地说,很难计算它们——它们取决于计算机行为随时间变化的实际方面


选择算法时,渐近复杂度仅是考虑的一个指标。估计或测量预期问题规模的实际时间也很重要。如果随着问题规模的增加,算法将急剧变慢,则渐近复杂性会发出警告。

从Wolfram | Alpha链接判断,您确定要将常数与
5000n
进行比较,而不是将
n*logn/logn
5000n
进行比较吗?因此您要将
f(n)=5000n
g进行比较(n) =n*log(n)/log(n))
g
在“长期”内将大于
f
,正如
log(n)/log(n))
最终将超过
5000
你怎么敢将常数与线性函数进行比较?线性函数在增长,而常数是常数。我不明白你的意思,孟。布莱德,是的,这就是我比较的。对不起,我在上面澄清了。我的输入错误。从Wolfram | Alpha链接判断,你确定你要这么做吗将一个常数与
5000n
,而不是
n*logn/log log n
5000n
?因此,您将
f(n)=5000n
g(n)=n*log(n)/log(n))
g
进行比较,从“长期来看”将大于
f
,正如
log(n)/log(n)]
最终将大于
5000
你怎么敢将常数与线性函数进行比较?线性函数在增长,而常数是常数。我不明白你的意思,孟。Blender,是的,这就是我要比较的。对不起,我在上面澄清了。我这方面的输入错误。即使是这样的事情,这是真的吗?答案是什么第一个Wolframα查询意味着什么?第一个查询是如何得到
n
的值的,第二个查询是确认
5000n
对于
n
的值。另外,对于第二个Wolframα链接,它们恰好在
n=0
处相遇,并且对于任何正的
n都是相等的因此,在这种情况下(除非每个函数上都有常数因子),
(3/2)^n
对于可用值
n
以及
n
变大时,n
将是更大的值。因此,它确实具有更高的复杂性。即使对于这样的事情也是如此吗?第一个Wolfram | Alpha查询意味着什么?第一个查询是如何获得
n
的值的,第二个查询是确认对于
n
的值,
5000n
。同样,对于第二个Wolfram | Alpha链接,它们正好在
n=0
处相遇,对于任何正的
n
,等式都是真的。因此,在这种情况下(排除每个函数上的常数因子),
(3/2)^n
将是
n
的可用值以及
n
变大时的更大值。因此,它确实具有更高的复杂性。