Warum wird dieser Code in Big-Oh-Notation als O (N ^ 6) betrachtet?

8

Ich habe gerade eine andere Frage gelesen und dieser Code hat mich fasziniert:

%Vor%

Ich verstehe nicht, wie das O sein kann (N ^ 6). Kann jemand es für mich brechen?

    
karlphillip 21.07.2011, 04:42
quelle

3 Antworten

14

Eigentlich ist es:

  • Die i-Schleife iteriert O (N) mal, also ist der Wert von i O (N), also können wir O (I) = O (N) sagen.
  • Die j-Schleife iteriert O (I ^ 2) = O (N ^ 2) mal (bei Betrachtung ohne die äußere Schleife).
  • Die k-Schleife iteriert O (I * J) = O (N * N ^ 2) = 0 (N ^ 3) mal.
  • Die l-Schleife iteriert nur 10-mal, also ist O (1).

Die Schleifen sind verschachtelt, also müssen wir diese zusammen multiplizieren (verstehst du warum?). Die Summe ist O (N) · O (N ^ 2) · O (N ^ 3) = O (N ^ 6).

    
David Grayson 21.07.2011, 04:57
quelle
1

Es ist

n für die erste Schleife n² für die zweite Schleife n³ für die dritte Schleife

Die innere Schleife ist O (1)

Die Summe ist O (n⁶).

Der Grund dafür, dass die dritte Schleife n³ ist, ist, dass, wenn man darüber nachdenkt, j n² erreicht und i n erreicht, so erreicht i * j n³.

    
Paulpro 21.07.2011 04:57
quelle
-1

Ich würde sagen:

  • n für die erste Schleife
  • n² für die zweite Schleife = & gt; insgesamt von n³
  • n² für die dritte Schleife = & gt; insgesamt von n⁵
  • noch eine weitere n-Schleife = & gt; insgesamt von n⁶
Pascal MARTIN 21.07.2011 04:44
quelle

Tags und Links