Какова временная сложность метода ниже и почему?Какова будет временная сложность этого и почему?
Я знаю, что он должен быть больше O (n) из-за первого цикла.
Но что происходит с временной сложностью после цикла while?
Это O (n) (n-1) = O (n^2 + n)?
int fnA(int n) {
int sum=0;
for (int i=0; i<n; i++) {
int j=i;
int product =1;
while (j>1) {
product ∗= j ;
j = j/2;
}
sum += product;
}
return sum;
}
Это похоже на проблему с домашней работой. Что вы пробовали? Сложность здесь многочлена и больше, чем 'O (n)'. Кстати, «O (n^2 + n)» не имеет большого смысла, так как асимптотически доминирует «n^2», поэтому то, что вы хотите записать в этом случае, - «O (n^2)». –
@ Виллиам, это экзаменационный вопрос, на который я готовлюсь. Так что это O (n^2 + n), и я прав? :) – Naomi
Ну, ты на правильном пути, но см. Мое редактирование в комментарии выше. –