算法时间复杂度分析
递归型算法复杂度分析方法:
首先列出递归式:
例如
使用数学归纳法求解:
T(n)=2T(n-1)+1
T(n)=(2^2)T(n-2)+2+1
T(n)=(2^n)T(0)+n+….+1
T(n)=(2^n)+n(1+n)/2
穷举法
列举问题的所有必要可能解,并用约束条件逐一进行判定,找出符合约束条件的解。
1.确定问题的解结构;
2.确定问题的解空间和遍历方法;
3.确定问题解的判别规则;
递归与分治法
1.简单分割法
对问题的输入做简单的分割,分析分割开的输入是否能构成同类型的子问题。
2. 局部定解法
如果问题的解具有结构性,可以看作若干独立部分的组合,则尝试对某个组成局部(优先
考虑边界位置的局部)列举所有的可能。
如果能够列举某个局部的所有可能,则可以将局部看作已知,进而分析剩余部分是否可以
由同类型的子问题来求解。
评论0
最新资源