int x = 0;
for (int i = n; i >= 3; i--) {
for (int j = 1; j <= Math.log(i) / Math.log(2); j++) {
for (int t = 0; t <= n; t += j) {
x++;
}
}
}
System.out.println(x);
Как видите, у меня есть 3 цикла, условия которых зависят друг от друга.
Мой анализ:
- Первый цикл : я предполагал, что он будет запускаться
(n-2)
раз «наихудший» сценарий.
- Второй цикл : я предполагал, что он будет работать
log(n)
раз «наихудший» сценарий.
- Третий цикл : я предполагал, что он будет работать
(n)
раз «наихудший» сценарий.
Итак, я рассчитал, что функция трех циклов будет:
(n-2)*(log(n))*(n)=(n^2)*log(n)-(2n)*log(n) = O((n^2)*log(n))
Я не уверен, что мои расчеты верны, пожалуйста, сообщите!