recursion - Big-Oh 表示法的二次方程
问题描述
我正在审查有关 Big-Oh 运行时的中期测试。我遇到困难的问题之一是以下重复出现,问题是要求使用 Big-Oh 符号。
T(n) = 2T(n/2) + (2n^2 + 3n + 5)
因此,通过使用主定理,其中 k > log_b (a),在这个问题中,我认为k是来自 (2n^2) 的 2,a是来自 2T 的 2,b是来自 (n/2) 的 2。因此,Master Theorem 的运行时间为 k > log_b (a),即 2 > log_2 (2) = 1,则 T(n) = O(n^2)。
我的想法正确吗?我从未在 T(n) 中看到过二次运行时,但我相当确定在这个问题中它是 O(n^2)。
谢谢您的意见!
解决方案
是的,O(n^2) 是正确的。实际上在维基百科关于主定理的文章中有一个类似的例子。这个函数可以是任何东西,基本上你只需将递归树的深度和宽度与这个附加函数的成本进行比较,然后检查是什么决定了复杂性。
推荐阅读
- c# - 试图从 azure blob 下载 word 文档
- python-sphinx - 如何使用 Sphinx 构建开发版本 阅读文档主题
- excel - VBA:根据条件在值上方添加空白行
- php - 尝试使用 php 将数据插入 MSSQL 服务器但出现错误
- c# - HOWTO 知道 ASP.NET MVC 中的传入请求是由用户交互(用户登录)还是由 asp.net MVC 应用程序本身触发的
- android - 在 android 上使用附加文本调用 USSD
- excel - Excel 链接到 Quickbooks 中的页面
- python - 使用 Python 的 SQLite 的正确语法
- excel - 对于 ListBox.list 中的每个项目,返回 VBA 中列表框中实际条目数的 10 倍(其他项目均为空)
- javascript - 在本地 iphone webview 上使用compression-webpack-plugin 时出现无效字符\u001f