2016-05-03 13 views
0

Wenn ich innerhalb einer for-Schleife (etwa n-mal läuft) einen Aufruf an eine Bibliotheksfunktion mache, die ich im Backend kenne, läuft eine andere Schleife, beeinflusst sie meine Gesamtkomplexität? Oder bleibt es O (n)?Zeitkomplexität bei Verwendung von Bibliotheksfunktionen

+0

Es hängt davon ab, ob die Komplexität der Bibliotheksfunktion von 'n' abhängt. Wenn es sich um eine Sortierroutine handelt, dann ja; wenn es eine Wurzelroutine ist, dann wahrscheinlich nicht. –

+0

1) Wenn Sie den Code aus der Bibliothek mit der Schleife und C & P'd es in Ihre Funktion, so dass anstelle der Aufruf der Bibliothek führt es den gleichen Code, würde das Ihre Komplexität erhöhen? 2) Was ist der Unterschied in diesen beiden Fällen? – BadZen

Antwort

0

Es wirkt sich auf Ihre Gesamtkomplexität aus. Stellen Sie sich vor, Sie würden die Funktion, die Sie schreiben, innerhalb einer anderen Schleife aufrufen - Sie können die inhärente Laufzeit einer Funktion nicht ignorieren, da sie wie eine einzelne Anweisung aussieht.

Nun, genau, wie es Ihre Komplexität beeinflusst hängt davon ab, was Sie damit tun, und was es tut, aber Sie können es sicherlich nicht ignorieren.

+0

Zum Beispiel sagen wir, dass ich die Pow-Funktion n mal nenne, in diesem Fall, wie denkst du, wird die Komplexität funktionieren? –

+0

in diesem Fall, Komplexität Ihrer Funktion = n (äußere for-Schleife) * complexityOfPowerFunction * n (keine der Zeiten powereer Funktion aufgerufen wird) –

Verwandte Themen