- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能解释一下这个算法的时间复杂度是多少?
for (i = 1; i <= n; i++){
for(j = 1; j <= n; j += i) { // note: not j++
printf("Iteration %d : %d\n", i, j);
}
}
最佳答案
printf
在内部循环中被称为完全 ceil(n) + ceil(n/2) + ceil(n/3) + ... ceil(n/n)
次。摆脱ceil
,我们知道 ceil(y/n)
以 y/n + 1
为界, 所以我们知道执行次数是>= n + n/2 + n/3 ... n/n
但是是 < n + 1 + n/2 + 1 + n/3 + 1 + n/4 + 1... + n/n + 1
.前者可以因式分解为 n(1 + 1/2 + 1/3 + 1/4 ... 1/n)
后者可以重构为 n(1 + 1/2 + 1/3 + 1/4 ... 1/n) + n
.
后一个因子是无穷大的第一个加数是 the harmonic series , 发散。第一个的总和k
来自维基百科页面的术语已知是有界的:
这意味着1 + 1/2 + 1/3 + 1/4 ... 1/n
是Ө(ln n) = Ө(log n)
;我们可以严格限制 printf
出现的次数被称为 ( c(n)
: n log n <= c(n) < n log n + 2n
。由于 n log n
比 2n
增长得更快,我们可以只保留前者并注意到两个边界都属于 Ө(n log n)
因此 c(n)
也属于 Ө(n log n)
( Ө(F)
表示该函数既是 Ω(F)
又是 O(F)
)。
关于c - 时间复杂度 嵌套循环 内循环+外循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59667412/
在以下python代码中: narg=len(sys.argv) print "@length arg= ", narg if narg == 1: print "@Usage: in
我需要遍历三个列表并处理每个组合。最外层和第二级循环(list1/list2)的顺序取决于一些排序规则。此外,我在最后一个 (list3) foreach 循环之前和之后都有一些逻辑。ProcesPa
这个问题在这里已经有了答案: How do I break out of nested loops in Java? (37 个回答) 关闭6年前. 如果我在循环中有循环,并且一旦满足 if 语句我想
谁能解释一下这个算法的时间复杂度是多少? for (i = 1; i = n + n/2 + n/3 ... n/n但是是 < n + 1 + n/2 + 1 + n/3 + 1 + n/4 + 1.
我将更新从 foreach 循环生成的特定 ID 的值字段。 $sql = "SELECT `user_id`, max(case when `meta_key` = 'link' the
我是一名优秀的程序员,十分优秀!