it-swarm.com.de

Unterschied zwischen unterer und fester Bindung?

Was ist Theta (enge Bindung) mit der Referenz dieser Antwort ?

Omega ist unterer Schranke, die Mindestzeit, die ein Algorithmus dauern kann, ist durchaus bekannt. Und wir wissen, dass Big-O für die obere Grenze steht, die maximale Zeit, die ein Algorithmus dauern kann. Aber ich habe keine Ahnung vom Theta.

88
Adeel Ansari

Big O ist die obere Grenze, während Omega die untere Grenze ist. Theta erfordert sowohl Big O als auch Omega, daher wird es als tight-Bindung bezeichnet (es muss sowohl die obere als auch die untere Grenze sein).

Ein Algorithmus, der Omega(n log n) nimmt, benötigt zum Beispiel mindestens n log n Zeit, hat aber keine Obergrenze. Ein Algorithmus, der Theta(n log n) verwendet, ist weit bevorzugt, da er zumindest n log n (Omega n log n) und nicht mehr als n log n (Big On Log n) benötigt.

140
Chris Bunch

Θ-Notation (Theta-Notation) wird als tight-bound bezeichnet, weil sie genauer ist als O-Notation und Ω-Notation (Omega-Notation). 

Wenn ich faul wäre, könnte ich sagen, dass die binäre Suche in einem sortierten Array O (n.) Ist2), Auf3) und O (2n), und ich wäre in jedem Fall technisch korrekt. Das liegt daran, dass die O-Notation nur eine obere Schranke angibt und die binäre Suche auf der oberen Seite von all diesen Funktionen begrenzt ist, nur nicht sehr eng. Diese faulen Schätzungen wären unnütz.

Θ-Notation löst dieses Problem durch Kombination von O-Notation und Ω-Notation. Wenn ich sage, dass die binäre Suche Θ (log n) ist, erhalten Sie genauere Informationen. Es sagt Ihnen, dass der Algorithmus auf beide Seiten durch die gegebene Funktion begrenzt ist, so dass er niemals wesentlich schneller oder langsamer als angegeben sein wird.

105
Bill the Lizard

Wenn Sie etwas haben, das O (f (n)) ist, bedeutet dies, dass es k , g gibt (n) so, dass f (n) kg (n) .

Wenn Sie etwas haben, das Ω (f (n)) ist, bedeutet dies, dass es k , g gibt (n) so, dass f (n) kg (n) ist.

Und wenn Sie etwas mit O (f (n)) und Ω (f ( n)) , dann ist es Θ (f (n) .

Das Wikipedia-Artikel ist anständig, wenn auch etwas dicht.

16
Charlie Martin

Asymptotische Obergrenze bedeutet, dass ein bestimmter Algorithmus während der maximalen Zeit ausgeführt wird, abhängig von der Anzahl der Eingaben. 

Nehmen wir als Beispiel einen Sortieralgorithmus. Wenn sich alle Elemente eines Arrays in absteigender Reihenfolge befinden, wird zum Sortieren eine Laufzeit von O(n) benötigt, die die Komplexität der oberen Schranken anzeigt. Wenn das Array bereits sortiert ist, lautet der Wert O(1)

Im Allgemeinen wird O-notation für die Komplexität der oberen Grenze verwendet.


asymptotisch fest gebunden (c1g (n) ≤ f(n) ≤ c2g (n)) zeigt die durchschnittliche gebundene Komplexität für eine Funktion mit einem Wert zwischen den Grenzwerten (Obergrenze und Untergrenze), wobei c1 und C2 sind Konstanten.

5
sameenu

Die Phrasen minimum time und maximum time sind hier etwas irreführend. Wenn wir über große O-Notationen sprechen, ist es nicht die tatsächliche Zeit, die uns interessiert, sondern wie die Zeit zunimmt, wenn unsere Eingabegröße zunimmt. Normalerweise ist es die durchschnittliche oder die schlechteste Zeit, über die wir sprechen, und nicht best case, was bei der Lösung unserer Probleme normalerweise keine Bedeutung hat. 

Verwenden Sie die Arraysuche in der akzeptierten Antwort auf die andere Frage als Beispiel. Die Zeit, die benötigt wird, um eine bestimmte Zahl in der Liste der Größe n zu finden, beträgt im Durchschnitt n/2 * some_constant. Wenn Sie es als Funktion f(n) = n/2*some_constant behandeln, steigt es nicht schneller als g(n) = n im Sinne von Charlie. Es erhöht sich auch nicht langsamer als g(n). Daher ist g(n) tatsächlich sowohl eine obere als auch eine untere Grenze von f(n) in der Big-O-Notation, sodass die Komplexität der linearen Suche genau n ist, was bedeutet, dass es Theta (n) ist. 

In dieser Hinsicht ist die Erklärung in der akzeptierten Antwort auf die andere Frage nicht völlig korrekt, die besagt, dass O(n) eine Obergrenze ist, da der Algorithmus für einige Eingaben in einer konstanten Zeit ablaufen kann (dies ist das Bester Fall Ich habe oben erwähnt, was wir eigentlich nicht über die Laufzeit wissen wollen). 

3
PolyThinker

Wenn ich faul wäre, könnte ich sagen, dass die binäre Suche in einem sortierten Array .__ ist. O (n2), O (n3) und O (2n), und ich wäre in jedem .__ technisch korrekt. Fall.

Wir können die o-Notation ("oh oh") verwenden, um eine obere Grenze zu bezeichnen, die nicht asymptotisch eng ist. Beide, große und kleine, sind ähnlich. Mit big-oh wird jedoch wahrscheinlich asymptotisch enge Obergrenze definiert.

0
Finn is missing

Genau die untere Schranke oder $\omega $ bfon f(n) bedeutet die Menge von Funktionen, die asymptotisch kleiner oder gleich f(n) sind, dh U g (n) ≤ cf (n) $\für alle $ `un≥ n 'Für einige c, n' $\in $ $\Bbb {N} $

Und die obere Schranke oder $\mathit {O} $ auf f(n) bedeutet die Menge von Funktionen, die assymptotisch größer oder gleich f(n) sind, was mathematisch sagt,

$ g (n)\ge cf (n)\für alle n\ge n '$, für einige c, n' $\in $ $\Bbb {N} $.

Nun ist das $\Theta $ der Schnittpunkt der beiden oben geschriebenen

$\theta $

Wenn ein Algorithmus wie "genau $\Omega\left (f (n)\right $" ist, ist es besser zu sagen, dass es $\Theta\left (f (n)\right) $ ist.

Oder wir können auch sagen, dass es uns die tatsächliche Geschwindigkeit gibt, bei der $ \omega $ uns die niedrigste Grenze gibt.

0