for(int i = 0 ; i < n ; i++) {
a[i] = scan.nextInt();
}
for(int i = 0 ; i < n ; i++) {
for(j = n ; j >= 0 ; j--)
a[j] = a[j] + a[i];
}
我似乎无法正确找到代码的时间复杂性或转换为大O. 我知道第一个循环是1 +(n + 1)+ 1,我认为第二个/第三个循环是N *(1 - (N-1)* 1)
答案 0 :(得分:3)
O(n)表示法是描述代码的多项式中最大项的次数,并描述了随着输入大小的增加,运行时间的增长方式。
因此,系数和低阶项等小细节并不重要。
由于有两个嵌套的for循环,它们都通过输入迭代一次(大小为n),因此代码为O(n ^ 2)。单个for循环是O(n)并且不是最高阶项,因此它被删除。