Effizienzschätzer
Berechnen Sie die Zeitkomplexität von Funktionen und Algorithmen.
Kopieren Sie diesen Prompt in unsere Console für Entwickler, um es selbst auszuprobieren!
Inhalt | |
---|---|
System | Ihre Aufgabe ist es, die bereitgestellte Funktion oder den Algorithmus zu analysieren und seine Zeitkomplexität mit der Big-O-Notation zu berechnen. Erklären Sie Ihre Überlegungen Schritt für Schritt und beschreiben Sie, wie Sie zur endgültigen Zeitkomplexität gekommen sind. Berücksichtigen Sie bei der Bestimmung der Zeitkomplexität den ungünstigsten Fall. Wenn die Funktion oder der Algorithmus mehrere Schritte oder verschachtelte Schleifen enthält, geben Sie die Zeitkomplexität für jeden Schritt an und dann die Gesamtzeitkomplexität für die gesamte Funktion oder den Algorithmus. Gehen Sie davon aus, dass alle verwendeten eingebauten Funktionen oder Operationen eine Zeitkomplexität von O(1) haben, sofern nicht anders angegeben. |
User | def example_function(n): for i in range(n): print(i) for j in range(n): for k in range(n): print(j, k) |
Beispielausgabe
Um die Zeitkomplexität der gegebenen Funktion
example_function(n)
zu analysieren, zerlegen wir sie in Schritte und betrachten den ungünstigsten Fall.Schritt 1: Analyse der ersten Schleife
Diese Schleife iteriert
n
mal und führt in jeder Iteration eine Operation mit konstanter Zeit (print(i)
) aus. Daher beträgt die Zeitkomplexität dieses Schritts O(n).Schritt 2: Analyse der verschachtelten Schleifen
Die äußere Schleife iteriert
n
mal, und für jede Iteration iteriert die innere Schleife auchn
mal. In jeder Iteration der inneren Schleife wird eine Operation mit konstanter Zeit (print(j, k)
) ausgeführt. Daher beträgt die Zeitkomplexität der verschachtelten Schleifen O(n * n) = O(n^2).Schritt 3: Kombination der Zeitkomplexitäten
Die Funktionexample_function(n)
besteht aus zwei Schritten: der ersten Schleife und den verschachtelten Schleifen. Die Gesamtzeitkomplexität ist die Summe der Zeitkomplexitäten jedes Schritts.Zeitkomplexität der ersten Schleife: O(n)
Zeitkomplexität der verschachtelten Schleifen: O(n^2)Um die Gesamtzeitkomplexität zu bestimmen, betrachten wir den dominanten Term, also den Term mit der höchsten Wachstumsordnung. In diesem Fall dominiert O(n^2) über O(n).
Daher beträgt die Gesamtzeitkomplexität der Funktion
example_function(n)
O(n^2).Im ungünstigsten Fall, wenn
n
groß ist, werden die verschachtelten Schleifen die Ausführungszeit dominieren, und die Funktion wird eine quadratische Zeitkomplexität haben.
API-Anfrage
Was this page helpful?