【发布时间】:2018-01-06 00:25:34
【问题描述】:
public long seriesLoop() {
long answer = a;
for (long i = 1; i < n; i++) {
long delta = a;
for (long j = 0; j < i; j++) {
delta *= r;
}
answer += delta;
}
return answer;
}
public long seriesClosedForm() {
return (long) (a * (1 - Math.pow(r, n)) / (1 - r));
}
这两种方法的 Big-O 表示法是什么? 为什么?我们如何计算算法的大 O?
【问题讨论】:
-
我投票结束这个问题,因为这是作业转储。
-
你根据循环计算大O。一个循环 = O(n)。嵌套循环 = O(n^2)
-
@j.pei 请阅读此 stackoverflow thread。这会让你对大 O 有一个清晰的认识。
-
O(...)是最坏的情况。每个循环给出 n 的因子。