If you're seeing this message, it means we're having trouble loading external resources on our website.

Wenn du hinter einem Webfilter bist, stelle sicher, dass die Domänen *. kastatic.org und *. kasandbox.org nicht blockiert sind.

Hauptinhalt

Funktionen in asymptotischer Schreibweise

Wenn wir die asymptotische Notation verwenden, um die Wachstumsrate der Laufzeit eines Algorithmus in Bezug auf die Eingabegröße n zum Ausdruck zu bringen, ist es gut, ein paar Dinge im Hinterkopf zu behalten.
Fangen wir mit etwas einfachem an. Angenommen, ein Algorithmus benötigt eine konstante Ausführungszeit, unabhängig von der Eingabegröße. Als Beispiel betrachten wir ein Array, das bereits in aufsteigender Reihenfolge sortiert ist. Du willst darin das minimale Element finden. Das würde dann unabhängig von der Größe des Arrays immer eine konstante Zeit dauern, da das minimale Element stets bei Index 0 anzufinden ist. Da wir die asymptotische Notation gerne als Funktion in Abhängigkeit von n angeben, könnte man die Laufzeit dieses Algorithmus als Θ(n0) angeben. Warum? Weil n0=1 ist und die Laufzeit des Algorithmus ein konstantes Vielfaches von 1 ist. In der Praxis schreiben wir allerdings nicht Θ(n0) sondern Θ(1).
Angenommen, ein Algorithmus dauert Θ(log10n). Ebensogut könnte man die Laufzeit als Θ(log2n) angeben. Wenn die Basis des Logarithmus eine Konstante (2,10, usw.) ist, spielt es keine Rolle, welche Basis wir in der asymptotischen Notation verwenden. Was ist der Grund dafür? Es gibt eine mathematische Formel, die besagt:
logan=logbnlogba
für alle positiven Zahlen a, b, and n. Wenn a and b konstant sind, dann unterscheiden sich logan und logbn nur durch den Faktor logba, und das ist ein konstanter Faktor, denn wir bei der asymptotischen Notation vernachlässigen dürfen.
Daher können wir sagen, dass die Worst-Case-Laufzeit der Binärsuche Θ(logan) für jeden positiv konstanten Wert von a ist. Warum? Die Anzahl der Vermutungen ist höchstens log2n+1. Das Erzeugen und Testen jedes Ratewertes nimmt eine konstante Zeit in Anspruch, ebenso die Einrichtung und Rückgabe. Die Binärsuche dauert also Θ(log2n), Wir verwenden dabei den Logarithmus zur Basis 2 weil Informatiker gerne in Potenzen von 2 denken.
Wenn wir mit asymptotischer Notation arbeiten sehen wir eine Ordnung der häufig verwendeten Funktionen. Wenn a und b Konstanten sind und a<b ist, dann wächst eine Laufzeit von Θ(na) langsamer als eine Laufzeit von Θ(nb) . Zum Beispiel wächst eine Laufzeit von Θ(n), die ja Θ(n1) ist, langsamer als eine Laufzeit von Θ(n2). Die Exponenten müssen dabei keine ganzen Zahlen sein. Zum Beispiel wächst eine Laufzeit von Θ(n2) langsamer als eine Laufzeit von Θ(n2n), was Θ(n2,5) ist.
Das folgende Diagramm vergleicht das Wachstum von n,n2 und n2.5:
Diagramm welches n, n quadriert, und n zur Potenz 2,5 vergleicht
Logarithmen wachsen langsamer als Polynome. Das heißt, dass Θ(log2n) langsamer wächst als Θ(na) für beliebige positive Werte für a. Aber da der Wert von log2n mit steigendem n wächst, wächst Θ(log2n) schneller als Θ(1).
Das folgende Diagramm vergleicht das Wachstum von 1, n und log2n:
Diagramm welches 1, log_2 von n und n vergleich
Hier ist eine Liste von Funktionen in asymptotische Notation, denen wir bei der Analyse von Algorithmen oft begegnen. Wir sortieren sie nach ihrer Wachstumsgeschwindigkeit - von langsam nach schnell:
  1. Θ(1)
  2. Θ(log2n)
  3. Θ(n)
  4. Θ(nlog2n)
  5. Θ(n2)
  6. Θ(n2log2n)
  7. Θ(n3)
  8. Θ(2n)
  9. Θ(n!)
Beachte, dass die Exponentialfunktion an, mit a>1, schneller wächst as eine polynomische Funktion nb, mit b als Konstante.
Diese Liste ist nicht erschöpfend; es gibt viele Algorithmen, deren Laufzeiten hier nicht angezeigt werden. Du wirst hoffentlich ein paar davon auf deiner Reise durch die Informatik treffen.

Dieses Tutorial ist in Zusammenarbeit zwischen den Professoren Thomas Cormen und Devin Bock von Dartmouth Computer Sience und dem Khan Academy Computing Curiculum-Team entstanden und wurde von der KA Deutsch Community übersetzt. Das Tutorial ist unter der Lizenz CC-BY-NC-SA lizenziert.

Willst du an der Diskussion teilnehmen?

Noch keine Beiträge.
Verstehst du Englisch? Klick hier, um weitere Diskussionen auf der englischen Khan Academy Seite zu sehen.