Нужно посчитать количество выполний команды для оценки сложности алгоритма. Конкретно меня интересует формула.
int sum = 0; for (int i = 1; i <= N; i++) for (int j = 1; j <= N; j++) for (int k = 1; k <= N; k = k*2) for (int h = 1; h <= k; h++) sum++;
Первых два цикла - N^2.
Третий по моим предположениям дает LOG2(N) + 1 или тоже самое что LOG2(2N)
Четвертый дает 2^(LOG2(N) + 1) - 1 или 2^(LOG2(2N)) - 1, если верить старым знаниям то это всё равняется 2N - 1
В итоге при перемножении выходит что можно на всё забить и останется только n^3.
Так ли?