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

问题描述 投票:-1回答:1

我有一个打印整数num星的函数,它适用于正整数,在控制台中打印num*num星。

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次访问。谢谢你

c++ time-complexity
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.