Ich versuche zu großen o Worst-Case-Szenario für eine Programmierlogik und brauche einige Erläuterungen.Großer o-Wert des Beispielprogramms
Hier ist ein sehr einfaches Programm, es dauert eine Zahl - 2938023 und jedes Zeichen wird mit einer Zufallszahl multipliziert und in einer Liste aufgefüllt.
Sobald die Liste ausgefüllt ist, bekomme ich den maximalen Wert als mein Ergebnis.
from random import randint
def test(A):
result = []
for each in str(A):
result.append(int(each)*randint(0,9))
return max(result)
print test(2938023)
Was ist der schlimmste Fall dieser Operation? Da die Liste - str (A) nur einmal durchlaufen wird, sollte ich es als log (n) oder
betrachten. Sollte ich es als n * n betrachten, wird die Liste erneut iteriert, um den maximalen Wert zu erhalten. Es gibt 2 Pass auf der Liste basierend auf n.
Wie bekommen Sie 'log'? auch warum ist dies markiert 'C++'? Sie können das 'max' in der' for-Schleife' selbst berechnen – Oswald
Es ist O (N). Die Liste wird genau 2n mal wiederholt, so dass der konstante Faktor, dh O (N), gelöscht wird. Ich sehe nicht, wo Sie das Protokoll bekommen ... –
@Oswald yeah, obwohl es wichtig ist, darauf hinzuweisen, dass sich die Big-Oh-Komplexität nicht ändert. –