2013-02-24 10 views
6

Ich möchte die Theta-Komplexität dieses verschachtelten for-Schleife berechnen:Asymptotic Analyse von drei for-Schleifen verschachtelt

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

Ich würde sagen, es ist n^3, aber ich glaube nicht, das ist richtig, denn Jede for-Schleife geht nicht von 1 nach n. Ich habe einige Tests:

n = 5 -> 10

10 -> 120

30 -> 4060

50 -> 19600

So muss es zwischen n sein^2 und n^3. Ich habe versucht, die Summenformel und so, aber meine Ergebnisse sind viel zu hoch. Obwohl von n^2 log (n), aber das ist auch falsch ...

Antwort

3

Es ist O(N^3). Die genaue Formel ist (N*(N+1)*(N+2))/6

+1

Haben Sie etwas dagegen erklärt, wie man diese bekommen? – Aaron

+0

@Aaron Ich fragte Wolfram Alpha (siehe den Link in der Antwort), es ist gut bei diesen Arten von Berechnungen. – dasblinkenlight

+0

Ja, das habe ich gesehen, aber ich möchte verstehen, warum es diese Formel ist. – Aaron

4

Mit Sigma Notation ist ein effizienter Schritt für Schritt Methodik: