Recursion 确定递推关系

Recursion 确定递推关系,recursion,big-o,Recursion,Big O,我在网上找到了下面的代码,我知道它是a和b的倍数 但是我在寻找递推关系或确定复杂性方面有一个问题,所以你能指导我吗 public int mystery(int a, int b) { if (b == 0) return 0; else if (b % 2 == 0) return mystery(a + a, b / 2); else return mystery(a + a, b / 2) + a; } 递归关系由函数本身定义。我认为它在数学符号上没有什么不同 复杂度完全取决

我在网上找到了下面的代码,我知道它是a和b的倍数 但是我在寻找递推关系或确定复杂性方面有一个问题,所以你能指导我吗

public int mystery(int a, int b) {
 if (b == 0) return 0;
 else if (b % 2 == 0)
  return mystery(a + a, b / 2);
 else return mystery(a + a, b / 2) + a;
 }

递归关系由函数本身定义。我认为它在数学符号上没有什么不同

复杂度完全取决于
b
,b在停止条件之前呈指数下降。因此,复杂性将是
O(logb)