algorithm - 以下代码片段的时间复杂度?

标签 algorithm time-complexity

enter image description here

我计算它是 O(N^2),但我的老师在考试中将其标记为错误。正确答案是 O(1)。谁能帮帮我,时间复杂度怎么变成O(1)了?

最佳答案

外层循环将运行2N次。 (int j = 2 * N) 之后每次递减 1)

并且由于 N 没有改变,并且 i 总是被赋予 N 的值 (int i = N),内部循环将始终运行logN base 2次。
(注意 i 改变 i = i div 2 的方式)

因此,复杂度为O(NlogN)

关于algorithm - 以下代码片段的时间复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329722/

相关文章:

database - 大数据库搜索推荐/建议

python - 如何比较字典中的键并查看一个键是否包含另一个键?

algorithm - 本次循环的操作次数

java - 使用涉及每个元素索引的计算在数组中赋值

java - 复杂代码/算法优化(例如简化)的困境

algorithm - Skiena,算法设计手册,关于堆排序(第 111 页)

Java:计算大量位置之间的距离和性能

algorithm - 是否有任何已知的算法以最有效的方式用不同大小的矩形填充特定区域?

java - 如何计算使用N个六面骰子得到总和X的概率

algorithm - 表示具有 3 个操作的二值数组的数据结构