登录循环的时间复杂度

Belphegor21

循环的复杂性是什么

for (int i = 0; i < n; i++)
{
    for (int j = 0; j < log(i); j++)
    {
        // do something
    }
}

据我说,内部循环将是运行log(1)+log(2)+log(3)+...+log(n)时间,那么如何计算其复杂性?

卡拉斯托伊科

因此,您有一笔款项log(1) + log(2) + log(3) + ... + log(n) = log(n!)通过使用斯特灵公式和事实,即ln(x) = log(x) / log(e)人们可以得到

log(n!) = log(e) * ln(n!) = log(e) (n ln(n) - n + O(ln(n)))

这给出了与O(n ln(n))其他答案相同的复杂度(对所涉及的常数有了更好的理解)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章