- 博客(59)
- 资源 (2)
- 收藏
- 关注
原创 算法导论 思考题 4-1
a. θ(n4)b. θ(n)c. θ(n2lgn)d. θ(n2)e. θ(nlg7)f. θ(lgn*n1/2)g. 无法用主定理,使用递归树共n/2层,每个结点代价(n-2i)2最后一层代价θ(1)T(n)=∑(n-2i)2 =O(n3)
2017-03-27 16:17:27 1228
原创 算法导论 练习题 4.4-3
共lgn-1层每层分两块,第一块代价为n/2i,有4i个;第二块代价为O(1),有2*4i-1个最后一层有4lgn+4(lgn-1)个,每个代价为O(1),所以最后一层总代价O(n2)T(n)=∑(n*2i+4i-1*2)+O(n2) 2+4/3n2+O(n2) =O(n2)
2017-03-24 16:24:58 779
原创 算法导论 练习题 4.4-2
每层向下规模减半,共lgn+1层每层1个结点,代价为cn2/2i最后一层只有一个结点,代价为θ(1)T(n)=cn2+cn2/ 22+......cn2/2lgn-1+θ(1) =θ(n2)
2017-03-24 15:41:01 529
原创 算法导论 练习题 4.4-1
每层向下规模n都减半,最后一层达到1个结点,则n/2i=1,i=lgn,共有lgn+1层每层向下每个结点都扩展为3个,所以第i层有3i 个结点,每个结点的代价cn/2i最后一层3lgn个结点,每个结点代价θ(1),所以最后一层总代价θ(3lgn)T(n)=3/2cn+(3/2)2cn+......+(3/2)lgn-1cn+θ(3lgn)θ(3lgn)=2cn+θ(nlg3)因
2017-03-24 11:36:08 1401 1
原创 算法导论 练习题 4.3-9
令m=lgnT(2m)=3T(2m)+m令S(m)=T(2m)则S(m)=3S(m/2)+m主方法还没看 解不出这个递归式。
2017-03-23 22:47:39 1009
原创 算法导论 练习题 4.3-6
设T(n/2+17)则 T(n) =4Clgn+128C(lgn-1)+(4C-1)n对任意C>1/4,n>=2都成立
2017-03-23 22:36:27 1509
原创 算法导论 练习题 4.3-1
要证明T(n)=O(n²):T(1)=1 满足条件设T(n-1)²满足条件则T(n)=T(n-1)+n²+n=n²-(n-1) 当n>=1时都满足得证
2017-03-23 16:34:25 1092
原创 算法导论 练习题 4.2-6
1、将A=kn*n和B=n*kn分别拆成k个n*n矩阵:A11,A21......AK1和B11,B12......B1K A和B相乘得k*k的矩阵,(A11*B11,A11*B12......A11*B1K......AK1*B11,AK1*B12...AK1*B1K) 对其中每个乘法应用Strassen算法,则渐进时间是K*K*n的2.81次方2、采取相同做法,
2017-03-23 10:11:22 651
原创 算法导论 矩阵乘法(自然定义法)
#include #define LEN 2void nativeMult(const int a[LEN][LEN],const int b[LEN][LEN],int c[LEN][LEN]){ for(int i=0;i<LEN;i++) { for(int j=0;j<LEN;j++) { c[i][j]=0; for(int k=0;k<LEN;k++)
2017-03-22 09:51:19 270
原创 算法导论 最大子数组问题(分治策略)
#include <stdio.h>//返回包括中间元素在内的子序列最大和,通过指针带回该子序列首尾位置int maxCrossingSub(int a[],int *low,int *high,int mid){ int tLow=(*low),tHigh=(*high); int rightMax=-9999,leftMax=-9999,sum=0; int i,j;
2017-03-20 20:44:21 388
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人