我知道如果我们使用常数操作,time complexity
为constant
。
那么如果我们有以下情况呢?
例如,操作使用固定大小1000
的数组。无论那个操作或输入的大小是多少,计算量总是(1000 ^ 1000)
(计算与输入的大小无关)
我们仍然可以说它的时间复杂度仍为O(1)
,即使我们的操作次数为(1000^1000)
吗?
答案 0 :(得分:1)
绝对。随着N的增加,计算时间保持不变。在进行渐近分析时,该常数的值无关紧要。
答案 1 :(得分:1)
是的,我想是的。
复杂性主要用于指示算法增长的顺序。也就是说,如果输入增加,算法将如何缩放。 现在,鉴于算法使用的空间和时间无论输入如何都是恒定的,我们可以说它具有恒定的空间或时间复杂度。
答案 2 :(得分:0)
是的,任何常数。那个“大O”的东西是一组函数,遵循这个定义
f(x) ϵ O(g(x)) <-> ∃m,c ∀n≥m f(n) ≤ c g(x)
正如你在这里看到的,你可以简单地选择c
作为你的巨大常数,从而把它放在O(1)类中。
出于显而易见的原因,这不应被视为关于现实生活表现的陈述。