C++ 完整程序
//main.cpp
#include<iostream>
#include<vector>
using namespace std;
int getSum(vector<int> v){
int res=0;
int n=v.size();
for(int i=0;i<n;i++) res+=v[i];
return res;
}
int main(){
int n;
cin>>n;
vector<int> v(n);
for(int i=0;i<n;i++){
cin>>v[i];
}
cout<<getSum(v)<<endl;
return 0;
}
递归函数的复杂度
对于递归而言:
[T(n)=left{egin{matrix}
O(1) & n=1\
kT(frac{n}{m})+f(n^a) & n>1
end{matrix}
ight.
]
则
[T(n) = k^{{log_{m}}^{n}} + sum_{j=0}^{log_{m}^{n-1}}k^jf(n^a/m^j)=n^{{log_{m}}^{k}} + sum_{j=0}^{log_{m}^{n-1}}k^jf(n^a/m^j)
]
最终的T(n)复杂度为:
[T(n) = max(O(n^{{log_{m}}^{k}}), O(n^a))
]
如果
[{log_{m}}^{k}=a, T(n)=O(n^alog(n))
]