2016-07-22 2 views
-3

Я хотел бы определить асимптотическую сложность в наихудшем случае следующую функцию:Определение асимптотическую сложность в худшем случае (O (N)) конкретной функции

int j; 
float r = 1.0; 
for (int i=1; i<(log n); i++){ 
    j = 1; 
    while (j <= i^2){ 
     r*=2; 
     j++; 
} 
print(r); 
+5

Это будет жестким, поскольку этот код не будет компилироваться с незакрытой '' {в строке 3, а 'n' войти , Я бы предложил либо придерживаться некоторого аромата псевдокода, либо 100% реального C++ для ясности. Кроме того, что вы пробовали до сих пор, чтобы определить временную сложность? SO не является домашним заданием. – CollinD

+0

Вы получите переполнение поплавка, если n> = 1000 –

ответ

2

Во-первых, я буду считать, что i^2 в вашем коде означает «i, увеличенный до 2", а не «i bitwise-XOR 2», поскольку последний соответствует синтаксису C++, но дает непредсказуемые результаты.

сложность времени задается суммой

![enter image description here

Нам нужно оценить суммы натуральных чисел к власти 2, используя данные из этой страницы: http://www.trans4mind.com/personal_development/mathematics/series/sumGeneralPowersNaturalNumbers.htm.

enter image description here

Таким образом, время сложность

enter image description here

+0

yep теперь я получил его, все же второе уравнение не является soo ясным, я сначала подумал, что это только одно уравнение, потому что я пропустил ',' – user463035818

Смежные вопросы