我在网上看到了这个关于时间复杂度的例子,但是有些困惑。
答案被表述为O(n)。我想知道为什么不是O(nlogn)。我这么说的原因是因为外层循环看起来是对数级别的,而内层循环则是线性的。如果y=n(而不是x),那么时间复杂度会变成O(nlogn)吗?如果是,为什么?
x = n
while ( x > 0 ) {
y = x
while ( y > 0 ) {
y = y - 1
}
x = x / 2
}
答案被表述为O(n)。我想知道为什么不是O(nlogn)。我这么说的原因是因为外层循环看起来是对数级别的,而内层循环则是线性的。如果y=n(而不是x),那么时间复杂度会变成O(nlogn)吗?如果是,为什么?