Performance 带循环和递归的大O估计 void调用(int n) { 对于(int j=1;j

Performance 带循环和递归的大O估计 void调用(int n) { 对于(int j=1;j,performance,recursion,time-complexity,big-o,Performance,Recursion,Time Complexity,Big O,Big O)估算值计算如下: 调用方法: 输入是na函数中有一个循环so O(n) 递归估计如下所示 void call(int n) { for (int j=1;j<=n;j++) { call(n/2); } } void main() { int i; for (i=1;i<=n;i++)

Big O)估算值计算如下:

调用方法: 输入是na函数中有一个循环so O(n) 递归估计如下所示

     void call(int n)
       {
         for (int j=1;j<=n;j++)
         {
           call(n/2);
          }
       }

     void main()
      {
        int i;
        for (i=1;i<=n;i++)
         {
           call(i);
         }
       }
因此,调用方法是nlogn

main方法

T(n/2) -- T(n/4) -- T(n/8) -- T(n/16) ... O(logn)

我在想,调用函数是否真的是O(n^logn),因为每个递归对调用递归的循环也有(n/2)?是的,它实际上是O(n^logn),因为递归是基于n的,n是调用函数的输入,在每次迭代中,n的一部分被传递给基递归函数。
1*call(1) -- 2call(2) -- 3call(3) -- ncall(n) since call(n) is O{nlogn) so n^2logn