algorithm - 我们如何比较 O(2^n) 和 Θ(2^n) 的时间复杂度?
问题描述
对于作业问题,我必须比较 O(2^n) 和 Θ(2^n) 的时间复杂度。
我相信 Θ(2^n) 更好,因为它涵盖了 2^n 的上限和下限,但我不确定。谢谢您的宝贵时间。
解决方案
当然,如果你有O(2^n)
会更好。因为你可以希望在最坏的情况下它会很糟糕。但最坏的情况可能很少发生。因此,平均时间复杂度可能要好得多。例如,您有一种情况发生的概率为1/2^n
,并且算法在这种情况下以2^n
计算成本运行,但对于所有其他情况,算法的成本为1
. 因此,该算法的复杂度为O(2^n)
,但平均复杂度为O(1)
。
然而,就像上面的例子一样,算法不会发生\Theta(2^n)
. 但是Theta(2^n)
您会确定平均时间复杂度是2^n
并且可能很糟糕。
推荐阅读
- c++ - G++-11 销毁顺序由 G++9 更改
- suitecrm - 在电子邮件模板中默认显示/添加跟踪器
- amazon-web-services - AWS AppConfig 检索多个 Parameter Store
- pdf - PDF 视图 - 视图不显示,除非缩小
- python - 用于 Python 的基于文本(控制台)的 UI
- python - python中一/两个pdf页面上的几个图
- c# - Selenium Sendkeys 包含
- 标记到文本区域
- php - Laravel 试图保存 $appends 属性
- javascript - 具有初始值的 Draft.js 编辑器
- winforms - 在 Blazor 服务器应用程序中使用 Windows 窗体图表