我有此功能,我需要使用Big-Theta分析运行时间,以提供最差的紧凑运行时间。我是这个主题的新手,可以使用以下功能的一些指导。
int C(int a[], int n) {
int x=0, i, j, k;
for(i=0; i<n; i++){
for(j=0; j<i; j++)
x += a[j];
for(k=1; k<n; k = k*2)
x += a[k];
}
我知道第一个循环输入O(n)次,第三个for循环执行O(logn)次。我遇到的问题是第二个for循环。是执行O(n)或O(n ^ 2)时间,为什么?我该如何正确分析这一点,以便获得最坏情况下的紧急运行时间?