以下算法的复杂度是简单的O(1),还是其复杂度更加棘手?
这个算法的复杂度是简单的O(1),不需要太多的计算。
for (i = 0; i < n; ++i)
if (i > 10)
break;
当 n <= 10 时,这显然是一个 O(n) 的复杂度,但我感到困惑。
这个算法的复杂度是简单的O(1),不需要太多的计算。
for (i = 0; i < n; ++i)
if (i > 10)
break;
当 n <= 10 时,这显然是一个 O(n) 的复杂度,但我感到困惑。
是的,它是O(1)的。这意味着一个函数的时间复杂度为O(1),也可以说它是有界的。那段代码的运行时间是有限制的,因此它是O(1)。
i>10
时终止,它只循环了一个常数次数(即与n
无关),因此运行时间为O(1)
。 - chiwangcif
语句确保了一个约束条件。它永远不会超过10。10是一个常数,因此它是O(1)。顺便说一句,问得好。 - But I'm Not A Wrapper Class