Sind Funktionen in O (n), die noch in o (n) sind, alle in Θ (n)?


7

Eine meiner Vorlesungen macht folgende Aussage:

(f(n)=O(n)f(n)o(n))f(n)=Θ(n)

Vielleicht fehlt mir etwas in den Definitionen, aber zum Beispiel ist die Blasensortierung und nicht aber es ist auch nicht \ theta (n ^ 2), da es die beste Laufzeit ist \ Omega ( n) .O(n2)o(n2)θ(n2)Ω(n)

Was fehlt mir hier?

Antworten:


10

Was Sie vermissen, ist ein sehr wichtiger Punkt: Ein Algorithmus ist nie O() von allem, da es sich in der Regel nicht einmal um eine realwertige Funktion handelt.

Wenn wir sagen, dass Blasensortierung ist O(n2)Was wir meinen ist das in der Funktion f, das ist die Worst-Case-Laufzeit der Blasensortierung, istO(n2).

In diesem Fall ist diese Funktion tatsächlich θ(n2), da im schlimmsten Fall die Laufzeit von unten und von oben durch begrenzt ist cn2 für die relevanten Konstanten c.

Genauer gesagt die Funktion, die wir als Worst-Case-Laufzeit eines Algorithmus bezeichnen A ist definiert durch

fA(n)=maxx:|x|=n{runtime of A on input x}
Und diese Funktion analysieren wir für die Worst-Case-Laufzeit.

Natürlich kann auch die Best-Case-Laufzeit analysiert werden. Wie Sie vorschlagen, ist die beste Laufzeit der Blasensortierung nicht , sondern .θ(n2)θ(n)


Wenn wir diese Notation anwenden, wenden wir sie immer separat auf den schlechtesten oder den besten Fall an? Insbesondere sprechen wir nie über die Begrenzung der Laufzeit im Allgemeinen , sondern über die Begrenzung der Worst-Case-Laufzeit.
Robert S. Barnes

4
Wir wenden diese Notation auf Funktionen an . Sie können sie auf jede gewünschte Funktion anwenden, einschließlich der besten, schlechtesten und durchschnittlichen Laufzeit. Oft interessieren wir uns für die beste Laufzeit, und dann können wir sie auch analysieren. Wenn Sie der Laufzeit "allgemein" eine Grenze geben möchten, wie Sie sie formulieren, ist Ihre Obergrenze die Laufzeit im ungünstigsten Fall und die Untergrenze der beste Fall. In Undergrad-Kursen interessieren Sie sich normalerweise für die Laufzeit im ungünstigsten Fall (manchmal auch für den Durchschnitt).
Shaull

Diese Antwort wäre gut, wenn die fragliche Aussage wahr wäre.
Raphael

1
Tatsächlich. Es ist jedoch ziemlich klar, dass das, was das OP verwirrt, nicht die Tatsache ist, dass es wahr ist, sondern das Worst / Best-Case-Laufzeitproblem.
Shaull

14

Sagen Sie dem Dozenten, dass sie falsch liegen. Übernimm die Funktion

f(n)={nn is even,1n is odd.
Diese Funktion ist O(n) doch keins o(n) Noch Θ(n).

Hier ist ein monotones Beispiel, das überzeugender sein könnte:

g(n)=expexplnlnn.

1
Ich habe dies als die Standardfalle in der Landau-Asymptotik angesehen und wünschte, es gäbe eine schöne Alternative, die die gewünschten Beziehungen ergibt.
Raphael

Logarithmisch-exponentielle Funktionen (Funktionen aufgebaut aus exp, log, die Feldoperationen und Konstanten) sind in Bezug auf die linear geordnet f=o(g)Reihenfolge (siehe Hardys "Befehle der Unendlichkeit"), so dass für diese Funktionen solche Probleme nicht auftreten können. Die Bodenfunktion ist somit nicht logarithmisch-exponentiell.
Yuval Filmus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.