Можете ли вы ответить на этот раз сложность? - PullRequest
0 голосов
/ 15 октября 2019

Я изучаю анализ сложности времени.

Итак, я решаю вопрос об этом.

Кто-нибудь проверяет мой ответ? 1.

x = 0;
for(i = 1; i<=N; i++)
    for(j = 1; j <= i; j++)
        for(k = 1; k <=j; k++)
            x += i + j + k;

Я думаю, что № 1 - это O (n ^ 3) ,,,, верно?

2.

x = 0;
for(i = 1; i<=N; i++)
    for(j = 1; j <= i^i; j++)
        for(k = 1; k <=j; k++)
            x += i + j + k;

мой ответO (n ^ 5)

3. 
x = 0;
for(i = 1; i<=N; i++)
    for(j = 1; j <= i; j++)
        if(j % i == 0)
            for(k = 1; k <=j; k++)
                x += i + j + k;

Я действительно не знаю, что ответ ,,,,,

Помоги мне ~!

1 Ответ

0 голосов
/ 22 октября 2019

В третьем вопросе смотрите условие j% i == 0. Это верно только тогда, когда j = i, то есть цикл k будет выполняться только тогда, когда i = j для каждого i от 1 до n. Итак, сложность кода O (n ^ 2).

...