数据结构_xt_第一章绪论_级数复杂度、递归减而治之

第一章绪论(下)

级数

推荐读物:《具体数学》

常见复杂度

算数级数:与末项平方同阶

T ( n ) = 1 + 2 + 3 + . . . + n = O ( n 2 ) T(n)=1+2+3+...+n=O(n^{2})

幂方级数:比幂高1

T ( n ) = 1 k + 2 k + 3 k + . . . + n k = O ( n k + 1 ) ; T(n)=1^{k}+2^{k}+3^{k}+...+n^{k}=O(n^{k+1});

k = 0 n x d 0 n x d + 1 d x 证明:\sum_{k=0}^{n}x^{d}\approx\int_{0}^{n}x^{d+1}dx

几何级数(a>1):与末项同阶

T ( n ) = a 0 + a 2 + a 3 + . . . + a n = O ( a n ) T(n)=a^{0}+a^{2}+a^{3}+...+a^{n}=O(a^{n})

证明:等比数列求和

例:

for(int i=1;j<n;i<<=1){
	for(int j=0;j<i;j++){
	...
	}
}

分析
1 + 2 + 3 + . . . + 2 l o g ( n 1 ) = O ( n ) 1+2+3+...+2^{log(n-1)}=O(n)

调和级数

不收敛
k = 1 n 1 n = Θ ( l o g n ) \sum_{k=1}^{n}\frac{1}{n}=\Theta (logn)

对数级数

不收敛
k = 1 n l o g n = Θ ( n l o g n ) \sum_{k=1}^{n}logn=\Theta(nlogn)

收敛级数

O ( 1 ) O(1)

迭代与递归

减而治之

原问题=平凡子问题+规模缩小后的子问题

应用:线性递归sum(1~n)

时间复杂度O(n)
T ( n ) = T ( n 1 ) + O ( 1 ) ; T ( 0 ) = O ( 1 ) ; T ( n ) n = T ( n 1 ) ( n 1 ) ; = . . = T ( 1 ) 1 = T ( 0 ) = 1 T(n)=T(n-1)+O(1); \\T(0)=O(1); \\T(n)-n=T(n-1)-(n-1); \\=.. \\=T(1)-1 \\=T(0)=1

int sum(int *p,int len){	
	if(len==0) {
		// return*p;
		return 0;
		}
	else{
		return p[len-1]+sum(p,len-1);//p[0]+sum(p,0)
		}
}
发布了25 篇原创文章 · 获赞 0 · 访问量 1527

猜你喜欢

转载自blog.csdn.net/qq_35459198/article/details/105376669