2013-02-24 3 views
6

Я хочу, чтобы вычислить тэта сложность этого вложенная цикл:асимптотический анализ трех вложенных циклов для

for (int i = 0; i < n; i++) { 
     for (int j = 0; j < i; j++) { 
      for (int k = 0; k < j; k++) { 
       // statement 

Я бы сказал, что п^3, но я не думаю, что это правильно, потому что каждый для цикла не идет от 1 до n. Я сделал несколько тестов:

п = 5 -> 10

10 -> 120

30 -> 4060

50 -> 19600

Так должно быть между п^2 и n^3. Я пробовал формулу суммирования и так, но мои результаты слишком высоки. Хотя n^2 log (n), но это также неправильно ...

ответ

3

Это O(N^3). Точная формула (N*(N+1)*(N+2))/6

+1

Вы не возражаете, объясняющие, как добраться до этого? – Aaron

+0

@ Аарон Я спросил Вольфрама Альфа (см. Ссылку в ответе), это хорошо для такого рода расчетов. – dasblinkenlight

+0

Да, я это видел, но хочу понять, почему именно эта формула. – Aaron

4

Использование Sigma нотации является эффективным шаг за шагом методологии:

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