java - 计算大 O 表示法 O(n) 和 O(n^2)
问题描述
我有一个程序从 ArrayList 中获取数据,需要 O(n) 时间。
但也有一个嵌套的 for 循环,需要 O(n^2) 时间。
程序的时间复杂度是 O(n^2) 还是 O(n^3)?
解决方案
这取决于这两个部分如何相互作用。如果它们相互调用(例如,对于列表中的每个元素(O(n)),您执行一个在整个列表上执行嵌套循环的方法(O(n 2 )),您将它们相乘并得到 O(n 3)时间复杂度。
如果它们以串行方式调用 - 即,您遍历列表 (O(n)) 并且一旦您执行 O(n 2 ) 算法,反之亦然,O(n) 部分可以忽略不计与 O(n 2 ) 部分相比,整体时间复杂度为 O(n 2 )。
推荐阅读
- amazon-web-services - Terraform for AWS:根据 beanstalk 实例的 AZ 传递特定的资源地址
- excel - 查找具有单元格匹配范围值的所有行,复制到按值命名的新工作表
- python - 如何在python中识别字符串和字母数字字符串?
- python - 显示分组:CreditScore 和 Age against Churn
- power-automate - 如何在不安装本地电力自动化应用程序的情况下自动化遗留应用程序?
- azure-log-analytics - Azure 日志分析 documentdb 操作
- python - 如何让python识别自写的包?
- excel - 查找表中最大的收款人
- javascript - !!msg.message 和 msg?.message 有什么区别?
- javascript - 意外的“/”在
在编译 ejs 时