此print_star函数的运行时复杂度是多少?

What is the runtime complexity of this print_star functions?

本文关键字:复杂度 多少 运行时 print star 函数      更新时间:2023-10-16

我有这个用于整数数字的打印星号函数,适用于正整数:

void print_stars(int num)
{
if (num < 0)
print_stars(num + 1);
else
{
for (int i = 0; i < num; ++i)
{
for (int j = num; j > 0; --j)
cout << "*";
cout << endl;
}
}
}

在控制台中打印数字 * 数字星号。 例如,如果给定整数为 3,则打印:

***
***
***

假设整数为正数,运行时复杂度是多少? 我假设它是 O(num^2(,因为它在每次迭代中都会经历 num 次。

编辑:很抱歉错别字,我的意思是 O(num^2(,因为每个 num 迭代都有 num 访问。谢谢!

O(n^2(,其中 n 是输入的数字。

这是因为有两个 for 循环,每个循环运行 n 次。因此,n*n = n^2,运行时间为 O(n^2(。其他操作是低阶项。

请记住,O(n( 是不可能的,因为 n 可能是负数。如果代码是线性时间,它将是 O(abs(n((