对
错
第1题:
Hanoi Tower 汉诺塔
h(n)=2*h(n-1)+1
h(1)=1
初始所有铜片都在a柱上
procedure hanoi(n,a,b,c:byte); {将第n块铜片从a柱通过b柱移到c柱上}
begin
if n=0 then exit;
hanoi(n-1,a,c,b); {将上面的n-1块从a柱通过c柱移到b柱上}
write(n,’moved from’,a,’to’,c);
hanoi(n-1,b,a,c);{ 将b上的n-1块从b柱通过a柱移到c柱上
end;
初始铜片分布在3个柱上,给定目标柱goal
h[1..3,0..n]存放三个柱的状态,now与nowp存最大的不到位的铜片的柱号和编号,h[I,0]存第I个柱上的个数。
Procedure move(k,goal:integer); {将最大不到位的k移到目标柱goal上}
Begin
If k=0 then exit;
For I:=1 to 3 do
For j:=1 to han[I,0] do
If h[I,j]=k then begin now:=I;nowp:=j; end; {找到k的位置}
If now<>goal then begin {若未移到目标}
Move(k-1,6-now-goal); {剩下的先移到没用的柱上}
Writeln(k moved from now to goal);
H[goal,h[goal,0]+1]:=h[now,nowp]; h[now,nowp]:=0;
Inc(h[goal,0]); dec(h[now,0]);
Move(k-1,goal); {剩下的移到目标上}
End;
第2题:
汉诺塔问题的求解方式,是用分治算法,一步一步计算而得的。
第3题:
第4题:
数据结构中,时间复杂度中,O(1)表示:()。
第5题:
数据结构与算法里,从算法的设计要求上讲,汉诺塔应具有()。
第6题:
求两个n阶矩阵的乘积,算法的基本操作和时间复杂度分别为()和()
乘法;O(n3)
略
第7题:
汉诺塔的时间复杂度从阶梯来讲,属于指数阶。
第8题:
A、平方阶O(n2),对数阶O(log2n),指数阶O(2n)
B、线性对数阶O(nlog2n),指数阶O(2n),立方阶O(n3)
C、常数阶O(1),线性阶O(n),指数阶O(2n)
D、k次方阶O(nk),指数阶O(2n),对数阶O(log2n)
第9题:
数据结构里,在算法时间复杂度中,O(nn)表示()。
第10题:
数据结构里,在算法时间复杂度中,O(log2n)属于()。