我对这个算法有疑问,我很难理解复杂性
While(input) {
...
array to check
...
for (int i=0; i< arraysize; i++) {
creation first subarray;
creation second subarray;
}
for (int i=0; i < firstsubarraysize; i++) {
addinput to array;
for( int j = 0; j < secondsubarraysize; j++) {
calculate array[j] * input;
}
}
}// endwhile
因此,考虑输入一个M变量并且数组是N,大O将是O(m(nlogn))还是O(n2)? 子阵列并不总是n \ 2。 我道歉如果我不是很清楚。
答案 0 :(得分:2)
通常,对于每个嵌套循环,在大O中将有一个N用于时间复杂度。
这里假设最外面的循环while
运行M次,然后在其中有两个嵌套的for
。总数为O(M N^2)
。