Ich muss diese Schleife unter anderem analysieren und ihre Laufzeit mit Big-O-Notation bestimmen.Big-O-Analyse für eine Schleife
for (int i = 0; i < n; i += 4)
for (int j = 0; j < n; j++)
for (int k = 1; k < j*j; k *= 2)`
Hier ist, was ich bisher:
for (int i = 0; i < n; i += 4) = n
for (int j = 0; j < n; j++) = n
for (int k = 1; k < j*j; k *= 2) = log^2 n
Jetzt das Problem, das ich kommen werde, um die endgültige Laufzeit der Schleife ist. Meine beste Schätzung ist O (n^2), aber ich bin unsicher, ob das korrekt ist. Kann jemand helfen?
Edit: sorry über die Oh -> O Sache. Mein Lehrbuch verwendet „Big-Oh“
Da Sie alle inneren Schleifen für jede Iteration der äußeren Schleifen auszuführen, es wäre eine einfache Multiplikation sein, das heißt O (n * n * log (n)). (Überprüfen Sie jedoch nicht Ihre individuellen Ergebnisse). – Thomas
ich denke, die dritte Schleife ist nicht 'log^2 n', sondern' log n^2 ', das' O (log n) '. –
@Thomas also würden Sie immer noch als normal multiplizieren, obwohl es eine Protokollfunktion gibt? JuanLopes du hast Recht! Vielen Dank. –