求前n项和:
用迭代方式:
int SumI(int A[],int n){
int sum=0;
//o(1)
for(inti=0;i<n;i++)
//O(n)
sum+=A[i];
//O(1)
return sum;
//O(1)
}
无论A[]内容如何,都有:
T(n)=1+n*1+1=n+2=O(n)
用递归方式进行求解:
sum(int A[],int n){``return (n<1) ? 0:sum(A,n-1)+A[n-1];}
递推方程 T(n)=T(n-1)+O(1)
T(0)=O(1)
求解 T(n)-n=T(n-1)-(n-1)=…
=T(2)-2
=T(1)-1
=T(0)
T(n)=O(1)+n=O(n)