Ich beende eine Aufgabe für meine Klasse, dieser spezielle Abschnitt beinhaltet eine "Analyse" der Laufzeit für mehrere For-Schleifen. Der Ausbilder gab an, dass er eine Big Oh Notation-Antwort möchte.Was sind die großen O Notation für diese for-Schleifen?
ich auf dem Fundament baue die Zeit Gesamtlauf basiert auf:
1)The cost of executing each statement
2)The frequency of execution of each statement
3)The idea of working from "inside and out", specifically starting from inner loops.
Ich weiß, dass:
total = 0;
for (int i = 0; i < n;i++){
total++;
}
Antwort: O (N) seinen Lauf linear.
for (int i = 0; i < n;++i)
for (int j = 0; j < n;++j)
total++;
Antwort: O (N^2), uns interessiert nur, wie groß N wächst.
ich auf
for (int i = 0;i < n;++i)
for (j=0;j < n * n;++j)
++total;
und
for (i = 0;i < n;++i)
for (j = 0; j < i;++j)
++total;
Und last but not least, ich gehe davon aus von meinem Lehrbuch, das alle Triple-verschachtelten Schleifen an N^3 Mal laufen bin verwirrt?
Die erste läuft in O (n^3) und die zweite läuft in O (n^2) – Ra1nWarden
Diese Schleifen sind einfach genug, um sie durch Experimente zu erhalten. Sie können verschiedene "n" -Werte (in einer Schleife) ausprobieren und die Reihenfolge ableiten. z.B. Versuchen Sie n = 10 und n = 20 und sehen Sie, was das Verhältnis der "Gesamtmenge" ist. –
genauer gesagt ist der letzte '= (n * (n-1))/2 = (n^2 - n)/2 € O (n^2)' – Rocki