首页 > 试题广场 >

假定move()的时间复杂度为O(1),则下列算法的时间复杂

[单选题]

假定move()的时间复杂度为O(1),则下列算法的时间复杂度为_____。

void hanoi(int n,char x,char y,char z)
{
 if(n==1)
     move(x,1,z);
 else
 {
     hanoi(n-1,x,z,y);
     move(x,n,z);
     hanoi(n-1,y,x,z);
 }
}

  • O(n)
  • O(n^2)
  • O(nlogn)
  • O(2^n)
链接:https://www.nowcoder.com/questionTerminal/c9c2dcc8b50448dfaa042f75249b6128 来源:牛客网
voidhanoi(intn,charx,chary,charz)
{
 if(n==1)
     move(x,1,z);
 else
 {
     hanoi(n-1,x,z,y);
     move(x,n,z);
     hanoi(n-1,y,x,z);
 }
}

发表于 2018-04-23 14:51:16 回复(1)
D
每层有两种选择,一共N层
发表于 2018-03-10 19:31:46 回复(0)
A
发表于 2017-09-17 17:10:29 回复(0)