Ich dachte, die Zeit Komplexität des folgenden Codes ist O (log N), aber die Antwort sagt, es ist O(N)
. Ich frage mich, warum:Zeitkomplexität: O (logN) oder O (N)?
int count = 0;
for (int i = N; i > 0; i /= 2) {
for (int j = 0; j < i; j++) {
count += 1;
}
}
Für die inners for-Schleife, läuft es für diese oft: N + N/2 + N/4 ...
es scheint logN
mir zu sein. Bitte hilf mir, warum hier zu verstehen. Danke
Wissen Sie zufällig, in welcher Reihenfolge die harmonische Summation wächst? –