big-o - 如果我在 for 循环中的终止语句是 i < n * n ,那么我的运行时间是 O(n^2) 吗?
问题描述
所以我对如何正确解释这个for循环的运行时间有点困惑: for (int i = 0; i < n * n; ++i) {}
我知道 O-Notation 的基础知识,我只是不知道如何正确解释运行时间,而且我找不到类似的例子。
问题实际上是一个三重嵌套 for 循环,我知道你只是将嵌套循环的运行时间相乘,但这让我不安全。
解决方案
是的。
n乘以自身是n 2,并且您执行n 2次迭代。
在这个简短的示例中,没有常数因素,也没有其他考虑因素。
复杂度只是O(n 2 )。
请注意,这不考虑在循环内执行的任何假设操作。还要注意,如果我们完全按照表面价值来看待循环,它实际上并没有做任何有意义的工作,所以我们可以说它根本没有算法复杂性。您需要提供一个真实的例子才能真正说出来。
推荐阅读
- c# - 如何旋转 png 图像以指示值?
- android -
不在 VectorDrawable 中渲染 - java - 如何在 Rest Api 中以 JSON 格式返回状态码?
- python - API 请求适用于 chrome,但不适用于 python 请求模块
- java - 如何使用 s3 select 从镶木地板文件中获取所有列的列表?
- flutter - 使带有扩展小部件的列可滚动
- reactjs - 无法使用 create-react-app 和 Typsecript 和 NextJS 加载 SASS
- sql - 如何将所有表链接在一起?
- c# - 如果我使用 new Task(action) -> .Start() 而不是 Task.Run() 创建任务,为什么在调用任何异步方法时任务会停止执行?
- android-studio - 如何修复android studio中的相机问题