Eine Einführung in die Theorie der Big-O-Notation

Eine Einführung in die Theorie der Big-O-Notation

1. Einführung

In diesem Artikel geben wirintroduction to the mathematics of big-O notation, as well as show an example of a big-O proof. an

2. Formale Definition

Definition:f(x) = O(g(x)) bedeutet, dass zwei positive Konstanten existieren,x1 undc, so dass0 ≤ f(x) ≤ cg(x) für allex ≥ x1 gilt.

3. Die erste positive Konstante:x1

Wenn wirf(x) = O(g(x)) sagen, sagen wirf of x is big-O g of x“.

Lassen Sie sich nicht vom Gleichheitszeichen täuschen:f(x) ist eine Funktion undO(g(x)) ist eine Menge. Sie können keine Funktion haben, die einem Satz entspricht. Das ist so, als würde man sagen, dass die Erde dem Sonnensystem entspricht. Es ist eher so, als ob sich die Erdebelongsim Sonnensystem befindet (die Menge der Planeten, aus denen sie besteht). In ähnlicher Weisef(x) belongs in a set of functions called O(g(x)) (big-Og vonx).

Wir haben jetzt zwei Funktionen -f(x) undg(x). Funktionengrow at different speeds. Beispielsweise wächst eine quadratische Funktion schneller als eine lineare Funktion. Abersometimes, it takes some time for the quadratic to catch up!

Wenn wir beispielsweisea(x) = 2x2 + 2x + 1 undb(x) = 10x haben, haben wira(1) = 5 undb(1) = 10. Aber sagen wir jetzt, wir wählenx = 15. Jetzt haben wira(15) = 450 + 30 + 1 = 481 undb(x) = 150. Darüber hinaus istfor any value greater than x = 15, say x = 20, a(x) will be bigger than b(x). (Jetzt ist ein guter Zeitpunkt, um auf die formale Definition zurückzugreifen; dies ist der Teil vonx ≥ x1).

Wichtig für den Fall des formalen Verständnisses von big-O:we don’t particularly care at which point a(x) began outgrowing b(x). Nur dass dies der Fall war und dass es ab diesem Zeitpunkt weiterhin größer alsb(x) ist.

4. Die zweite positive Konstante:c

Wir haben oben gesehen, wie es eine Weile gedauert hat, bisa(x)b(x). erreicht hat. Normalerweise hat es das getan, aber es hat eine Weile gedauert.

Der Grund, warum es schließlich schneller wächst, ist der2x2 -Sterm. Oder genauer gesagt, derx2Teil davon. This tells us that a(x) = O(x2). Verwenden Sie die Symbole der ursprünglichen Definition:f(x) = a(x) undg(x) = x2.

Bei Big-O interessieren uns die anderen Begriffe ina(x) oder die Konstante2 im Begriff2x2nicht.

Wenn wir noch einmal unsere Definition aus Abschnitt 2 betrachten, kommt hier die Konstantec ins Spiel. We can scale g(x) by any positive constant - solangef(x) kleiner als die skalierte Version bleibt (ab einem bestimmten Punktx ≥ x1).

Wenn wird(x) = 3x3 + 2x + 10, nehmen, müssen wir Werte vonc undx1 finden, so dassd(x) ≤ cx3 für alle Werte größer alsx1. ist. Genau das haben wir in Abschnitt 4 tun.

5. Die Teile zusammenfügen

Umf(x) = O(g(x)) zu beweisen, müssen wir zwei positive Konstanten finden,c undx1, so dass0 ≤ f(x) ≤ cg(x) für allex ≥ x1 gilt. We need to find values for c and x1 such that the inequality holds.

Dies bedeutet, dass nach einem bestimmten Punkt eine skalierte Version vong(x) immer größer alsf(x) ist.

6. Beispiel

Sei d(x) = 3x3 + 2x + 10.

Angenommen, wir möchten beweisen, dass d(x) = O(x3). Dies bedeutet, dass wir zwei positive ganze Zahlen finden müssen,c undx1, so dass0 ≤ d(x) ≤ cx3  für allex ≥ x1 gilt.

Nun, wir wissen, dass d(x) = 3x3 + 2x + 10 ≤ 3x3 + 2x3 + 10x3 = 15x3

so,

d(x) ≤ 15x3.

Wenn wir alsox1 = 1 andc = 15, einstellen, haben wir das für allex ≥ x1, 0 ≤ d(x) ≤ cx3. Alsod(x) = O(x3).

Wir hätten andere Werte fürx1 undc finden können, die die obige Bedingung erfüllen. Alles was zählt ist, dassthere exist values of x1 and c which satisfy the condition.

7. Fazit

In diesem Artikel haben wir uns auf einintroduction to the theory of big-O notation konzentriert.

Ein praktischerer Blick auf dieses Thema kannfound here sein.