以下函数的时间复杂度
本文关键字:时间复杂度 函数 | 更新日期: 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)
,因为从int
到String
的转换将使用O(length of num1)
或O(number of digits)
。但由于我们处理的是int
,它几乎只有11位数字,是常数,我们可以说时间复杂度是O(1)
。