Zeitkomplexität bestimmen

Neue Frage »

Justinoderso Auf diesen Beitrag antworten »
Zeitkomplexität bestimmen
Meine Frage:
Es geht um die Frage, bestimme die O-Notation für den folgenden Code-Block:
for i in range ( n ):
for j in range ( n ^2) :
for k in range ( i *j ) :
do_something (i , j , k ) # Funktion ist O(1)

Meine Ideen:
Meine Überlegung ist O(n^9), die erste Schleife wird ja einfach n mal durch laufen, die zweite n^2 mal. Die dritte wird i*j mal durchlaufen.
i*j beginnt mit 0 und hat ihr Maximum bei n-1*n^2-1. Im weiteren werde ich die -1 vernachlässigen, da sie für die Frage nach der O-Notation keine Rolle spielt.
nach der Gaußschen Summenformel müsste die Summe von 0 bis n^2*n=n^3 ja (n^6+n^3)/2 sein.
Alles in summe würde dann n*n^2*n^6=n^9 ergeben. Oder sehe ich das falsch?
IfindU Auf diesen Beitrag antworten »
RE: Zeitkomplexität bestimmen
Ich glaube du multiplizierst da zu viel.

Man kann direkt ablesen, dass die Funktion "do_something" genau mal aufgerufen wird. Das kann man jetzt rein algebraisch vereinfachen.
Justinimmernoch Auf diesen Beitrag antworten »
RE: Zeitkomplexität bestimmen
Hmm, ich verstehe nicht wie dein Ergbenis anders ist als meins. Kannst du das denn mal für mich vereinfachen?
IfindU Auf diesen Beitrag antworten »
RE: Zeitkomplexität bestimmen


Edit: Siehe HALs Anmerkung unten für die korrekte Gaußsche Summenformel. Ich schiebe es mal auf die Temperatur in meiner Wohnung Forum Kloppe
HAL 9000 Auf diesen Beitrag antworten »



Ändert natürlich nichts an der Gesamtabschätzung. Augenzwinkern
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »