java - 算法上的原始操作
问题描述
我正在分析算法并坚持for and while loop
假设我们有一个 for 循环
for (int i=0; i<n; i++)
所以分配i = 0
= 1
i < n = n+1
(它将运行 n 次,最后一次检查哪个循环为假将是 n+1)
这是混乱
i++
--> i++ 也将运行 n 次,但它执行两个不同的工作,增量和赋值。是 2n 还是只是 n?
同样在while循环中
while (i<n):
会是2n吗?
我正在研究大 O。
谢谢
解决方案
通常,一项分配等同于一项操作或“步骤”。这是因为通常使用与常量无关的大 O 表示法来测量算法的渐近运行时间。
我通常会算作i++
一次手术。因此,要回答您的问题,假设所有这些循环都是 increment i
,则运行时将是O(n)
. 然而,即使你把它算作两个,运行时间仍然是O(n)
.
推荐阅读
- java - 为什么这个 ArrayList 'add' 操作不添加新元素?
- spring - 如何避免 Spring Boot Controller 捕获对 favicon 的请求?
- node.js - 特维利奥
到 Azure 连续语音转文本 - python - 如何使用 fastai unet_learner?
- java - XML 解析器 (Unmarshall) 使用 JaxB 从 xml 文件中获取元素
- html - 阻止 CKEditor 4 添加额外的 HTML 标签
- reactjs - 为什么我不断收到 TypeError: setScrollNav is not a function, when function is defined
- apache-kafka - 在成功提交当前消耗的偏移量之前超时 60000 毫秒
- javascript - 创建的 jquery 可放置元素上的功能
- google-apps-script - 从下拉列表中选择工作表