i++;j++;}
}
cout<<"\n";
}
第6页习题1.16
a.gcd(31415,14142)=gcd(14142,31415mod14142)
=gcd(14142,3131)=gcd(3131,1618)
=gcd(1618,1513)=gcd(1513,105)
=gcd(105,43)=gcd(43,19)
=gcd(19,5)=gcd(5,4)
=gcd(4,1)=gcd(1,0)=1
b.由上述计算可以知道:
gcd运算次数=11次
Min(m,n)运算次数=14141次
倍数=14141/11=1286倍
第14页习题1.28
例如:
排序问题,算法很多,有插入排序、冒泡排序、快速排序等等。
其中:
快速排序性能较佳。
第20页习题1.31
a.过程:
S输出:
143547608198
b.不稳定,因为当两数相等的时候,原排在前面的数,会移动到后面去
c.不在位,因为它需要额外的空间S.
第29页习题1.41
a.将最后一个元素移到此位置。
//将i后面的元素向前移一位。
b.该位置的元素置为一个不可能的字符。
//从第i个元素开始往后,将比他大的元素往前移一位,直到最后。
第2章算法效率分析基础
第39页习题2.12
解答:
a.基本操作是加法运算,
以矩阵阶数来表示:
f(n)=n2
若元素个数为m,则以矩阵元素个数来表示:
f(m)=m
b对于矩阵乘法运算基本操作是乘法运算:
以矩阵阶数来表示:
f(n)=n3
若元素个数为m,以矩阵元素个数来表示:
f(n)=m*∠m
第39页习题2.13
解答:
有差异.每次查找运算需要比较所有的元素,他的效率与经典顺序查找算法的最差效率相同。
第46页习题2.21
a.Q(n)
b.1
c.n/2
第46页习题2.22
a.Tb.Tc.Fd.T
第46页习题2.24
a.是的,
b.用极限的方法来证明。
第52页习题2.34
a.求和∑n2
b基本操作是乘法运算
c基本操作执行了n次
d.效率类型是线性阶
e.直接计算或许可以。
第3章蛮力法
第79-80页
习题3.1811
8.
原始顺序:
AE(前)E(后)LMPX
选择排序结果:
E(前)XAMPLE(后)
选择排序过程:
E(前)XAMPLE(后)
AXE(前)MPLE(后)
AE(前)XMPLE(后)
AE(前)E(后)MPLX
AE(前)E(后)LPMX
AE(前)E(后)LMPX
AE(前)E(后)LMPX
AE(前)E(后)LMPX
11.原始顺序:
AE(前)E(后)LMPX
冒泡排序结果:
AE(前)E(后)LMPX
冒泡排序过程:
E(前)XAMPLE(后)
E(前)AXMPLE(后)
E(前)AMXPLE(后)
E(前)AMPXLE(后)
E(前)AMPLXE(后)
E(前)AMPLE(后)X
AE(前)MPLE(后)X
AE(前)MPLE(后)X
AE(前)MLPE(后)X
AE(前)MLE(后)PX
AE(前)LME(后)PX
AE(前)LE(后)MPX
AE(前)E(后)LMPX
AE(前)E(后)LMPX
AE(前)E(后)LMPX
AE(前)E(后)LMPX
第82页习题3.24
因为文本中只有一个以G开头的情况,文本的字符个数是47个,而模式为6个字符子串,所以比较次数为47-6+1=42个。
第87页习题3.32
注意实线上只要计算两者的差值就可以。
可以.算法的时间复杂度为O(nlog2n).
第93页习题3.48
给出所给定的元素的所有可能的序列,找出按字符的大小递增的那个序列就是符合要求的排序。
效率是n!
.
98习题3.5
1
a.邻接矩阵
abcdefg
a0111100
b1001010
c1000001
d0100010
e1000001
f0101000
g0010100
邻接链表
a->b->c->d->e
b->a->d->f
c->a->g
d->a->b->f
e->a->g
f->b->d
g->c->e
b.深度优先查找遍历图:
从a开始深度优先查找顺序:
a->b->d->f->c->g->e
99习题3.5z4
广度优先查找遍历图:
a->b->c->d->e->f->g
第4章分治法
第135页习题5.16
合并排序排序过程:
EXAMPLE
EXAMPLE
EXAMPEL
AEXELMP
AEELMPX
第135页习题5.17
合并排序是稳定的排序算法。
第140页习题5.21
快速排序的递归调用树如下:
第140页习题5.23
快速排序算法不是稳定的排序算法。
因为相同元素排序前、后的次序不一定相同。
第144页习题5.35
对于该二叉树,各种遍历算法的结果如下:
a.先序:
abdecf
b.中序:
dbeacf
c.后序:
debfca
习题5.38
a.2
38
9075
146
b.中序:
3051n-1
后序:
5301n-1
后序排列的最后一个元素必须是根节点。
//第117页习题4.63
第5章减治法
105习题4.1
7
插入排序过程如下:
E1XAMPLE2
E1XAMPLE2
AE1XMPLE2
AE1MPXLE2
AE1LMPXE2
AE1E2LMPX
109习题4.25
a、
拓扑排序结果:
d,a,c,b,g,e,f
或d,a,b,g,e,c,f
b.该图有一个环路,所以无解
120习题4.43
a.要4次
总共有13个元素,最多需要比较键值的次数是log213+1=x
b.n=13;
第一次迭代l=0;r=12;m=(0+12)/2=6;
第二次迭代:
l=0,r=5,m=(0+5)/2=2或l=7,r=12,m=(7+12)/2=9
第三次迭代:
l=0,r=m-1=2-1=1;或l=3,r=5m=(3+5)/2=4;
第四次迭代:
l=0,r=0;m-1=2-1=1;或l=3,r=5m=(3+5)/2=4;
c.log213
d.log2(13+1)
121习题4.44
Log2(1,000,000)/500,000=
第6章动态规划
习题8.1P224
1a.两者都具有最优子结构性质,即将问题分解为较小的问题,分别解决,然后合并到一起。
b.动态规划技术解决的问题一般由交叠的子问题构成。
分治法分解后的子问题是相互独立的,可以用于并行计算。
2
0
1
2
3
4
5
C
0
5
1
2
10
6
F
0
5
5
7
15
15
F(0)=0,F
(1)=C1=5;
F
(2)=max{c2+F(n-2),F(n-1)}=max{c2+F(2-2),F
(1)}=max{1+0,5}=5
F(3)=max{c3+F(n-2),F(n-1)}=max{c3+F(3-2),F
(2)}=max{2+5,5}=7
F(4)=max{c4+F(n-2),F(n-1)}=max{c4+F(4-2),F(3)}=max{10+5,7}=15
F(5)=max{c5+F(n-2),F(n-1)}=max{c5+F(5-2),F(4)}=max{6+7,15}=15
总金额:
15
习题8.2P229
1a.w=3,2,1,4,5
v=2520154050
W=6
0123456
00000000
100025252525
2002025254545
30152035404560
40152035405560
50152035405565
b.最优子集:
{3,5}
c.看列的变化,如果总价值不变,则只看到一个最优子集
变化,则不止一个最优子集
4a,b正确
习题8.4P241
1该图的传递闭包:
0111
0011
0001
0000
7
abcde
a02w18
b6032w
D0=cww04w
dww203
e3www0
abcde
a02w18
b603214
D1=cww04w
dww203
e35w40
abcde
a02518
b603214
D2=cww04w
dww203
e35840
abcde
a02518
b603214
D3=cww04w
dww203
e35840
abcde
a02314
b60325
D4=cww047
dww203
e35640
abcde
a02314
b60325
D5=c1012047
d68203
e35640
最后的最短距离矩阵为:
abcde
a02314
b60325
D=c1012047
d68203
e35640
第7章贪婪技术
P250习题9.1
9a.
23
4
4
b.
P245习题9.2
1a.
1
53
2
b.
2a.Tb.Tc.Fd.F
P248习题9.3
2a
P253习题9.4
1,
3a.Fb.T