Wir haben vor kurzen das Thema Laufzeiten behandelt und sollen als Hausaufgabe die Laufzeiten verschiedener Abschnitte bestimmen.
Der letzte Abschnitt verwirrt mich einbisschen.
for(intj=0;j<n;j++) {
for(inti=n;i>1;i=i/2) {
System.out.println(i)
}
}
Bei Schleifen beträgt die Laufzeit immer n. Sind sie verschachtelt wie im Beispiel ist sie n hoch 2, bei 3 Scheifen n hoch 3 usw.
Aber hier läuft die äußere Schleife doch n-mal und die innere nur n/2 mal.
Schreibt man trotzdem n hoch 2 (also O(n hoch2 ) in der O-Notation) als Laufzeit, weil es 2 verschachtelte Schleifen sind?
Oder ist die O-Notation O(n / (n/2))?
Der letzte Abschnitt verwirrt mich einbisschen.
for(intj=0;j<n;j++) {
for(inti=n;i>1;i=i/2) {
System.out.println(i)
}
}
Bei Schleifen beträgt die Laufzeit immer n. Sind sie verschachtelt wie im Beispiel ist sie n hoch 2, bei 3 Scheifen n hoch 3 usw.
Aber hier läuft die äußere Schleife doch n-mal und die innere nur n/2 mal.
Schreibt man trotzdem n hoch 2 (also O(n hoch2 ) in der O-Notation) als Laufzeit, weil es 2 verschachtelte Schleifen sind?
Oder ist die O-Notation O(n / (n/2))?