Ich lerne jetzt Big-O-Notation und in diesem kleinen Algorithmus in einem anderen Thread gestolpert:Zeitaufwand des folgenden Algorithmus?
i = n
while (i >= 1)
{
for j = 1 to i // NOTE: i instead of n here!
{
x = x + 1
}
i = i/2
}
an den Autor des Posts Nach ist die Komplexität Θ (n), aber ich kann nicht finde heraus, wie. Ich denke, die Komplexität der while-Schleife ist Θ (log (n)). Die Komplexität der for-Schleife aus dem, was ich dachte, wäre auch Θ (log (n)), weil die Anzahl der Iterationen jedes Mal halbiert würde.
Also, wäre die Komplexität des Ganzen nicht Θ (log (n) * log (n)), oder mache ich etwas falsch?
Edit: ist das Segment in der besten Antwort auf diese Frage: https://stackoverflow.com/questions/9556782/find-theta-notation-of-the-following-while-loop#=
Sie sollten mit der Frage verknüpfen, die Sie zuvor gesehen haben. –