2013-09-07 25 views

Antwort

0

Die Big-O-Notation drückt eine asymptotische Obergrenze aus, während die Big-Theta-Notation zusätzlich eine asymptotische Untergrenze ausdrückt. Oft interessiert die Leute an der Obergrenze, also schreiben sie O (etwas), selbst wenn Theta (etwas) auch wahr wäre. Wenn Sie z. B. die Anzahl der Dinge, die in einer unsortierten Liste gleich x sind, zählen möchten, können Sie sagen, dass dies in linearer Zeit geschehen kann und O (n) ist, denn was Ihnen wichtig ist, ist, dass es gewonnen hat. Es dauert nicht länger. Es ist jedoch auch wahr, dass es Omega (n) und daher Theta (n) ist, da Sie alle Elemente in der Liste untersuchen müssen - es kann nicht in sublinearer Zeit durchgeführt werden.

+1

Gibt es einen Unterschied zwischen ihnen, wenn man über eine Konstante spricht? gibt es auch einen Fall, dass es eine Anforderung für Theta 1 und nicht O 1 geben wird? – BarakA

+0

Es gibt keinen Unterschied, wenn es um konstante Zeit geht, weil die untere Grenze impliziert ist. Aber sehen Sie hier für eine interessante Diskussion: http://Stackoverflow.com/questions/905551/are-there-any-o1-n-algorithmen –

+0

Vielen Dank Kumpel – BarakA

2

O (1) und Θ (1) sind nicht unbedingt identisch, wenn Sie Funktionen über reelle Zahlen sprechen. Betrachten Sie zum Beispiel die Funktion f (n) = 1/n. Diese Funktion ist O (1), weil für jedes n ≥ 1, f (n) ≤ 1. Es ist jedoch nicht Θ (1) aus dem folgenden Grund: eine Definition von f (n) = Θ (g (n)) ist das die Grenze von | f (n)/g (n) | Wenn n in die Unendlichkeit geht, ist ein endlicher Wert L, der 0 < L erfüllt. Wenn f (n) = 1/n und g (n) = 1 eingegeben werden, nehmen wir die Grenze von | 1/n | wenn n in die Unendlichkeit geht und es wird 0 sein. Daher gilt f (n) ≠ Θ (1).

Hoffe, das hilft!

Verwandte Themen