2011-07-21 16 views

Odpowiedz

14

rzeczywistości to jest:

  • Pętla i iteruje O (N) razy, więc wartość i jest O (N), więc możemy powiedzieć O (I) = O (N).
  • Pętla j iteruje O (I^2) = O (N^2) razy (gdy rozpatrywany jest sam, bez zewnętrznej pętli).
  • Pętla k iteruje O (I * J) = O (N * N^2) = O (N^3) razy.
  • Pętla l po prostu się iteruje 10 razy, więc jest to O (1).

Pętle są zagnieżdżone, więc musimy je pomnożyć (czy rozumiesz dlaczego?). Suma to O (N) * O (N^2) * O (N^3) = O (N^6).

+0

OK, więc ostateczny wynik osiąga się przez pomnożenie ocen każdej pętli, a nie przez sumę (jak sugerował @Pascal). Czy ktoś inny może to potwierdzić? – karlphillip

+2

Pascal naprawdę nie zrobił sumy. Pomnożył n * n^2 * n^2 * n i otrzymał n^6. Może wyglądać jak suma, ponieważ wykładniki sumują się, ale tak właśnie działają wykładniki matematyczne. –

+0

Te wtrącenia są potwierdzone = D –

-1

by powiedzieć:

  • N dla pierwszej pętli
  • n² do drugiej pętli => sumie n³
  • n² do trzeciej pętli => łącznie n⁵
  • kolejny n-pętli => sumie n⁶
+0

Ktokolwiek głosował, wyjaśnij dlaczego. – karlphillip

+4

Nie spadłem, ale nie widzę, jak najbardziej wewnętrzną pętlą może być O (n), gdy wykonywana jest w stałym czasie, niezależnie od wartości n. – antinome

+0

Tak, to wygląda jak O (N^5) dla mnie – bdares

1

To

n dla pierwszej pętli n² do drugiej pętli n³ do trzeciej pętli

Wewnętrzna pętla O (1)

Całkowita O (n⁶).

Powodem, dla którego trzecia pętla jest n³, jest ponieważ kiedy myślisz o tym, j osiąga n², a ja osiąga n, więc i * j osiąga n³.

Powiązane problemy