以下功能的时间复杂度

时间:2015-05-20 12:05:43

标签: c# optimization time-complexity

可以告诉下面的代码块的时间复杂性

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();            
}

1 个答案:

答案 0 :(得分:1)

据我所知,最常见的时间复杂度表示法是Big-O,我将在这个答案中分享相同的内容。时间复杂度为O(1),假设Math.Pow计算为O(1).ToString()方法为O(1)。它是O(1),因为每个步骤只会执行一次。

在gerenal中,如果我们考虑.ToString().Length时间复杂度,那么它将是O(length of num1),因为从int转换为String将需要O(length of num1)或{ {1}}。但是,当我们处理O(number of digits)时,我们可以说时间复杂度为int,而O(1)最多只有11位数,这是常数,我们可以说Client

相关问题