Loops 嵌套依赖for循环的大O表示法是否始终为n^2

Loops 嵌套依赖for循环的大O表示法是否始终为n^2,loops,for-loop,language-agnostic,Loops,For Loop,Language Agnostic,嵌套依赖for循环的大O表示法是否总是O(n^2)?是的,对于最坏情况的复杂性。但仅当内部循环的长度/步长==外部循环的长度/步长时。大O表示上限。因此,对于依赖于循环< /代码>,请考虑以下示例: for(i=0;i<n;i++) for(j=0;j<i;j++) for(i=0;iNo,不一定。这取决于算法 例如,“group by”语义基本上处理外循环中的组,而组项目则在(嵌套的)内循环中处理。但在一天结束时,每个项目只处理一次。使用哈希分组算法,它可能仅为O(n)

嵌套依赖for循环的大O表示法是否总是O(n^2)?

是的,对于最坏情况的复杂性。但仅当内部循环的长度/步长==外部循环的长度/步长时。

大O表示上限。因此,对于<代码>依赖于循环< /代码>,请考虑以下示例:

for(i=0;i<n;i++)
    for(j=0;j<i;j++)

for(i=0;iNo,不一定。这取决于算法

例如,“group by”语义基本上处理外循环中的组,而组项目则在(嵌套的)内循环中处理。但在一天结束时,每个项目只处理一次。使用哈希分组算法,它可能仅为O(n)


因此,您的问题的一般答案是

这是不正确的。关键是步进,或增量,对两者都遵循相同的函数(相同程度)。
for(i=0;i<n;i++)
    for(j=0;j<n;j++)