public void f7(int N) {
for (int i = N/2; i > 0; i--) {
if (i % 2 == 0) {
for (int j = 0; j < N; j += 2) {
System.out.println("Hey");
}
} else {
for (int j = 1; j < N; j *= 2) {
System.out.println("You");
}
}
}
}
So versuche ich die asymptotische Komplexität (Big O) für diesen spezifischen Codeblock zu finden.Big O für spezifische Doppel für Schleife
Mein Denken: die erste für Schleife ist O (N), und weil die Hälfte der Zeit ungerade und die andere Hälfte der Zeit ist es gerade, ist es immer noch O (N) für die for-Schleife innerhalb der if-Anweisung und O (Log N) für die for-Schleife innerhalb der else-Anweisung wegen j * = 2. Also für meine letzte Antwort habe ich O (N^2 (Log N)), aber anscheinend ist die Antwort nur O (N^2). Ich habe mich gefragt, ob irgendjemand mir erklären könnte, wo ich falsch liege? Vielen Dank!
Danke für die Hilfe! – Rohan