Я должен рассказать о сложности обоих следующих алгоритмов:
for ( i=1; i < n; i *= 2 ) {
for ( j = n; j > 0; j /= 2 ) {
for ( k = j; k < n; k += 2 ) {
sum += (i + j * k );
}
}
}
for( int i = n; i > 0; i-- ) {
for( int j = 1; j < n; j *= 2 ) {
for( int k = 0; k < j; k++ ) {
... // some operation
}
}
}
В первом примере я знаю, что сложность внешнего и среднего циклов - log (n), но яне знаю, как вычислить сложность для внутренней, как инициализация изменения k на итерации
Для второй, очевидно, сложность равна n ^ 2, но я действительно не понимаю, почему