Um zu beweisen, dass Ihr Ausdruck ist O(n^2)
, müssen Sie zeigen, dass es durch M*n^2
begrenzt ist, für eine Konstante M
und einige minimale n
Wert. Durch die Inspektion, können wir zeigen, dass Ihr Ausdruck von 10*n^2
begrenzt ist, für n=10
:
Für n = 10
:
5n^2 + 2n -1 <= 10*n^2
500 + 20 - 1 <= 1000
519 <= 1000
Wir zeigen auch, dass der Ausdruck von 10*n^2
für jeden Wert begrenzt ist n
größer als 10:
Für n > 10
:
5n^2 + 2n -1 <= 10*n^2
5*(10+i)^2 + 2*(10+i) -1 <= 10*(10+i)^2
5*(i^2 + 20i + 100) + 2i + 19 <= 10*(i^2 + 20i + 100)
2i + 19 <= 5*(i^2 + 20i + 100)
2i + 19 <= 5i^2 + 100i + 500
5i^2 + 98i + 481 >= 0, which is true for `i > 0`
Hier
ist ein Link zum Wikipedia-Artikel über Big-O-Notation:
https://en.m.wikipedia.org/wiki/Big_O_notation
Update:
Beachten Sie, dass in der Praxis, um Ihren Ausdruck zu beschriften O(n^2)
wir ‚gewonnen auf solch einen hässlichen schriftlichen Beweis zurückgreifen. Stattdessen werden wir nur erkennen, dass der n^2
Begriff den Ausdruck für große n
dominieren wird, und dass das Gesamtverhalten O(n^2)
sein wird. Und dein Ausdruck ist auch O(n^3)
(und O(n^4)
, etc.).
Die erste Zeile ist nicht notwendig (und in der Tat nicht korrekt) – Henry
Großer Dank! Eine weitere Frage lautet: beweis 5n^2 + 2n -1 = O (n^3) - Würde das falsch werden? –
Beachten Sie, dass c = 6 und nicht 6n^2 – BlackBear