一直以来时间复杂度都不会算呜呜呜,今天理一理。鱼头(如图):
证明咱就算了,没这脑子。对于第一种情况,举几个栗子:
1)例1:二叉树的遍历。
T(n)=2T (n/2)+Θ (1) 。
其中(a=2), (b=2), (f(n)=1), 此时(ϵ=1)。
所以 (T(n)=Θ(n)) 。
2)例1:归并排序。
T(n)=2T(n/2 )+Θ(n) 。
其中(a=2), (b=2), (f(n)=n),此时(k=0)。
所以T(n)=Θ(nlog 2 n)
例2:二分搜索(折半搜索)。
T(n)=T(n/2 )+Θ(1) 。
其中(a=1), (b=2), (f(n)=1), 此时(k=0),
所以T(n)=Θ(log 2 n)。
3)没栗子了...(其实和第一种情况差不多)
例题解析(具体过程)
1)
第一步:列出a=9,b=3,f(n)=n;
第二步:计算=;
第三步:与f(n)比较,发现是第一种情况,代入计算,答案T(n)=Θ(n^2);
2)
第一步:列出a=1,b=2/3,f(n)=1;
第二步:计算=1;
第三步:与f(n)比较,发现是第二种情况,代入计算,答案T(n)=Θ(logn);
3)
【NOIP2015初赛】某算法的计算时间表示为递推关系式:
T(N)=T(N−1)+N, T(0)=1。则该算法的时间复杂度为_______。
【解析】难道这个就要用主定理了?容易推导出T(n)=T(0)+1+...+n=1+n∗(n+1)/2, 则时间复杂度为O(n^2 ) ,选D