Я застрял на контрольном вопросе для моих будущих промежуточных курсов, и любая помощь очень ценится.
Пожалуйста, смотрите функцию ниже:
void george(int n) {
int m = n; //c1 - 1 step
while (m > 1) //c2 - log(n) steps
{
for (int i = 1; i < m; i++) //c3 - log(n)*<Stuck here>
int S = 1; //c4 - log(n)*<Stuck here>
m = m / 2; //c5 - (1)log(n) steps
}
}
Я застрял на внутренней стороне цикла forтак как я увеличивается, а m делится на 2 после каждой итерации.
Если m = 100: 1-я итерация m = 100: цикл будет выполняться 100, я повторяю 100 раз + 1 для последней проверки 2-я итерация m = 50: цикл будет выполняться 50 раз, я повторяю 50 раз + 1 дляпоследняя проверка ..... и т. д.
Будет ли это также рассматриваться как log (n), поскольку m делится на 2?