对复杂性列表进行排序(Big O)

发布于 2024-12-11 11:43:06 字数 386 浏览 0 评论 0原文

给定一个复杂的列表:

那么你如何按照他们的 Big O 顺序排序?

我想答案就在下面?

现在的问题是 log(n!) 如何变成 n log(n)。我也不知道我是否得到了n!和 (n-1)!正确的。 c^n 有可能比 n! 更大吗?当c>1时n?

一般来说,我如何可视化这样的大O问题...我花了很长时间才做到这一点...与迄今为止的编码相比...任何资源,视频麻省理工学院开放课件资源,带有解释的东西

Given a list of complexities:

How do you order then in their Big O order?

I think the answer is below?

Question now is how does log(n!) become n log(n). Also I don't know if I got the n! and (n-1)! right. Is it possible that c^n can be bigger than n!? When c > n?

In general how do I visualize such Big O problem ... it took me quite long to do this ... compared to coding so far ... Any resources, videos MIT Open Courseware resources, something with explaination

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风柔一江水 2024-12-18 11:43:06

您可能想看看功能如何增长。这是 Wolfram Alpha 的快速绘图:

link

一般来说,n^n 的增长速度比c^n 对于任何大于某些 n_0n(因为 n 超过c 在某个时刻,即使 c 非常大)。对数增长比二次或指数增长慢得多,比线性增长稍快。

对于O(log(n!)) = O(nlogn),我相信有一种叫做斯特林近似的东西。归结起来就是将 O(n!) = O(n^n) 视为 n! = n*(n-1)*(n-2)*...*2*1,因此 n^n = n*n*n*...*n是一个上限。可以证明它也是一个下界,但你不需要它。

由于 log(n^n) = nlogn 根据对数规则,O(log(n!) = O(log(n^n)) = O(nlogn)

You might want to see how the functions grow. Here's a quick plot from Wolfram Alpha:

link

In general, n^n grows much faster than c^n for any n greater than some n_0 (because n will overtake c at some point, even if c is extremely large). log grows much slower than quadratic or exponential, and slightly faster than linear.

For O(log(n!)) = O(nlogn), I believe there was something called Stirling's Approximation. It boils down to seeing that O(n!) = O(n^n) as n! = n*(n-1)*(n-2)*...*2*1, so n^n = n*n*n*...*n is an upper bound. It can be proven that is it a lower bound as well, but you don't need that.

Since log(n^n) = nlogn by log rules, O(log(n!) = O(log(n^n)) = O(nlogn).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文