我在网上遇到了这个时间复杂的例子,我有点困惑.
x = n
while ( x > 0 ) {
y = x
while ( y > 0 ) {
y = y - 1
}
x = x / 2
}
Run Code Online (Sandbox Code Playgroud)
答案表示为O(n).我想知道为什么它不是O(nlogn).我之所以这么说是因为外环看起来是对数的,而内环似乎是线性的.如果y = n(而不是x),时间复杂度THEN是否为O(nlogn)?如果是这样,为什么?