遍历数组内所有可能的索引序列的算法。
一个循环的时间复杂度是线性的,两个嵌套循环的时间复杂度是二次O(n ^ 2)。但是,如果嵌套另一个循环并遍历这两个索引之间分隔的所有索引怎么办?时间复杂度是否上升到三次O(n ^ 3)?当N变得非常大时,似乎没有足够的迭代来考虑三次方的复杂性,但似乎是二次O(n ^ 2)
这是考虑N =数组长度的算法
for(int i=0; i < N; i++)
{
for(int j=i; j < N; j++)
{
for(int start=i; start <= j; start++)
{
//statement
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是N = 7(直到i = 7时)的迭代的简单视图:
等等..
我们应该将时间复杂度视为二次,三次还是不同的大小复杂度?