2017-03-25 6 views
-2
s = 0 
for i = 1 to n3 
for j = 1 to i do 
s = s + 1 

was ist mit computational Komplexität gemeint?Ermitteln Sie die Rechenkomplexität des folgenden Algorithmus

+1

So ist die eigentliche Frage "Was ist Rechenkomplexität"? –

+3

Mögliches Duplikat von [Big O, wie berechnen/approximieren Sie es?] (Http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it) –

Antwort

1

Nehmen wir an, jede Operation in diesem Code dauert konstant i. Dann kann die Laufzeit durch die Summe c 1 + c 2 * n3 + c ausgedrückt werden * i * n3 + c * i * n3. Wir betrachten konstante Koeffizienten als unbedeutend, da sie unabhängig von der Eingabe nur einen konstanten Wert beisteuern. Dies gibt uns Θ (1) + Θ (n3) + Θ (i * n3 + 1) + Θ (i * n3). In diesem Fall ist also die Zeitkomplexität Θ (n3!), Dh dieser Algorithmus läuft in faktorieller Zeit.

0

berechnen nur einige Werte (wie oft s = s + 1 für jede Iteration von i ausgeführt wird, und summieren) und sehen, was Sie bekommen:

1 + 2 + 3 + ... + n = n * (n + 1)/2 = n^2/2 + n/2 => Komplexität O (n^2).

Verwandte Themen