我认为以下代码的时间复杂度为O(log N),但答案是var_dump($_POST);
。我想知道为什么:
O(N)
对于inner for-loop,它运行了很多次:
int count = 0;
for (int i = N; i > 0; i /= 2) {
for (int j = 0; j < i; j++) {
count += 1;
}
}
对我来说似乎是N + N/2 + N/4 ...
。请帮我理解为什么在这里。感谢
答案 0 :(得分:6)
1,1 / 2,1 / 4,1 / 8 ... 1/2 ** n是几何序列,a = 1,r = 1/2(a是第一项,r是共同比例)。
其总和可以使用以下公式计算:
在这种情况下,总和的限制是2,所以:
public final PublicKey generatePublic(KeySpec keySpec)
throws InvalidKeySpecException {
if (serviceIterator == null) {
return spi.engineGeneratePublic(keySpec);
}
// Truncated for brevity
}
因此,共谋是O(N)
答案 1 :(得分:0)