void smiley (int n) {
for (int i = 0; i < n * n; ++i) {
for (int k = 0; k < i; ++k)
System.out.println(”k = ” + k);
for (int j = n; j > 0; j--)
System.out.println(”j = ” + j);
}
}
Как вы можете видеть, существуют две внутренние петли и одна внешняя петля. Время выполнения для этого - n^4
. Я получаю n * n
делает это n^2
, но как две внутренние петли составляют общее время выполнения n^4
?Время внутренней внутренней вложенной петли
PS
Один подобный случай здесь, время его работы является n^2
. Я тоже не понимаю. У него три петли?
void smiley (int n, int sum) {
for (int i = 0; i < n * 100; ++i) {
for (int j = n; j > 0; j--)
sum++;
for (int k = 0; k < i; ++k)
sum++;
}
}
Почему, по-вашему, это O (n^4)? –
В ответе говорится, что – user2913922
более тщательно оценивает границы, первый работает N^2 раза, а второй - n * 100 – Pita