以下函数的时间复杂度

本文关键字:时间复杂度 函数 | 更新日期: 2023-09-27 17:50:16

谁能说出下面这段代码的时间复杂度呢

private static void Multiply(int num1, int num2)
{           
        long p,b,h1,h2,l1,l2,z0,z1,z2,m1,m2;
        p = num1.ToString().Length-2;
         b=Convert.ToInt32(Math.Pow(10,Convert.ToDouble(p)));
        l1=num1%b;
        h1 = num1 - l1;
        l2 = num2 % b;
        h2 = num2 - l2;
        m1=num1 / b;
        m2=num2 / b;
        z0 =  l1*(m1+m2);
        z1 = m1*(h2 + Math.Abs(l1 - l2));
        z2=l1*l2;
        Console.WriteLine("Result is :"+((z0 +z1)*b+z2));
        Console.ReadLine();            
}

以下函数的时间复杂度

据我所知,最常见的时间复杂度符号是大0,我将在这个答案中分享相同的。时间复杂度为O(1),假设Math.Pow计算为O(1), .ToString()方法为O(1)。选择O(1),因为每个步骤只执行一次。

一般来说,如果我们考虑到.ToString().Length的时间复杂度,那么它将是O(length of num1),因为从intString的转换将使用O(length of num1)O(number of digits)。但由于我们处理的是int,它几乎只有11位数字,是常数,我们可以说时间复杂度是O(1)