Laufzeit: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) K (Vorlage O) |
Sn (Diskussion | Beiträge) K (→Beispiel: Schriftlich rechnen: Bilder besser einlayoutet) |
||
Zeile 4: | Zeile 4: | ||
== Beispiel: Schriftlich rechnen == | == Beispiel: Schriftlich rechnen == | ||
=== Schriftliche Addition === | |||
[[Datei:Traditional Addition Step 3.JPG|mini|Eine schriftliche Addition|200x200px]] | [[Datei:Traditional Addition Step 3.JPG|mini|Eine schriftliche Addition|200x200px]] | ||
Nehmen wir an, wir berechnen schriftlich die Summe <math>652+471 = 1123</math>. Diese Berechnung besteht aus drei kleinen Einzelsummen: <math>2+1 = 3</math>, <math>5+7=12</math> und <math>1+6+4=11</math>, wobei die 1 der Übertrag aus der letzten Addition ist. Jede dieser einzelnen Summen führen wir im Kopf durch, entscheidend ist die Anzahl der einzelnen Summen, die berechnet werden müssen. Um zwei ''drei''stellige Zahlen zu addieren, muss man also ''drei'' einzelne Additionen durchführen. | Nehmen wir an, wir berechnen schriftlich die Summe <math>652+471 = 1123</math>. Diese Berechnung besteht aus drei kleinen Einzelsummen: <math>2+1 = 3</math>, <math>5+7=12</math> und <math>1+6+4=11</math>, wobei die 1 der Übertrag aus der letzten Addition ist. Jede dieser einzelnen Summen führen wir im Kopf durch, entscheidend ist die Anzahl der einzelnen Summen, die berechnet werden müssen. Um zwei ''drei''stellige Zahlen zu addieren, muss man also ''drei'' einzelne Additionen durchführen. | ||
Zeile 11: | Zeile 12: | ||
'''Das heißt: Wenn sich die Länge der Summanden verdoppelt, verdoppelt sich auch die Rechenzeit bei der schriftlichen Addition. Verzehnfacht sich die Länge der Summanden, verzehnfacht sich auch die Rechenzeit.''' | '''Das heißt: Wenn sich die Länge der Summanden verdoppelt, verdoppelt sich auch die Rechenzeit bei der schriftlichen Addition. Verzehnfacht sich die Länge der Summanden, verzehnfacht sich auch die Rechenzeit.''' | ||
=== Schriftliche Multiplikation === | |||
[[Datei:SchriftlicheMultiplikation2.svg|mini|Eine schriftliche Multiplikation]] | [[Datei:SchriftlicheMultiplikation2.svg|mini|Eine schriftliche Multiplikation]] | ||
Nehmen wir an, wir berechnen schriftlich das Produkt <math>8642 \cdot 9731= 84095302</math>. Für diese Berechnung müssen vier einzelne Multiplikationen durchgeführt werden: <math>8642 \cdot 9 = 77778</math>, <math>8642 \cdot 7 = 60494</math>, <math>8642 \cdot 3 = 25926</math> und <math>8642 \cdot 1 = 8642</math>, die dann versetzt aufeinander addiert werden. Jede dieser vier Multiplikationen besteht wiederum aus vier kleinen Multiplikationen aus dem Kleinen Einmaleins, sodass insgesamt sechzehn kleine Multiplikationen ausgeführt werden müssen. | Nehmen wir an, wir berechnen schriftlich das Produkt <math>8642 \cdot 9731= 84095302</math>. Für diese Berechnung müssen vier einzelne Multiplikationen durchgeführt werden: <math>8642 \cdot 9 = 77778</math>, <math>8642 \cdot 7 = 60494</math>, <math>8642 \cdot 3 = 25926</math> und <math>8642 \cdot 1 = 8642</math>, die dann versetzt aufeinander addiert werden. Jede dieser vier Multiplikationen besteht wiederum aus vier kleinen Multiplikationen aus dem Kleinen Einmaleins, sodass insgesamt sechzehn kleine Multiplikationen ausgeführt werden müssen. | ||
Version vom 11. April 2024, 22:39 Uhr
Eine der wichtigsten Eigenschaften eines Algorithmus ist seine Laufzeit, das heißt, wie lange er benötigt, um seine Aufgabe zu erledigen.
Nun ist es natürlich offensichtlich, dass jeder Algorithmus eine kleine Eingabe schneller abarbeiten kann als eine große. Deswegen wird die Laufzeit eines Algorithmus immer in Abhängigkeit von der Länge seiner Eingabe angegeben.
Beispiel: Schriftlich rechnen
Schriftliche Addition
Nehmen wir an, wir berechnen schriftlich die Summe . Diese Berechnung besteht aus drei kleinen Einzelsummen: , und , wobei die 1 der Übertrag aus der letzten Addition ist. Jede dieser einzelnen Summen führen wir im Kopf durch, entscheidend ist die Anzahl der einzelnen Summen, die berechnet werden müssen. Um zwei dreistellige Zahlen zu addieren, muss man also drei einzelne Additionen durchführen.
Allgemein gesprochen: wenn man zwei Zahlen mit jeweils Ziffern addiert, muss man kleine Einzel-Additionen durchführen.
Das heißt: Wenn sich die Länge der Summanden verdoppelt, verdoppelt sich auch die Rechenzeit bei der schriftlichen Addition. Verzehnfacht sich die Länge der Summanden, verzehnfacht sich auch die Rechenzeit.
Schriftliche Multiplikation
Nehmen wir an, wir berechnen schriftlich das Produkt . Für diese Berechnung müssen vier einzelne Multiplikationen durchgeführt werden: , , und , die dann versetzt aufeinander addiert werden. Jede dieser vier Multiplikationen besteht wiederum aus vier kleinen Multiplikationen aus dem Kleinen Einmaleins, sodass insgesamt sechzehn kleine Multiplikationen ausgeführt werden müssen.
Zum Schluss werden noch vier Additionen durchgeführt, bei denen eine insgesamt achtstellige Zahl herauskommt.
Allgemein gesprochen: wenn man zwei Zahlen mit jeweils Ziffern multipliziert, muss man kleine Einzel-Multiplikationen und kleine Einzel-Additionen durchführen.
Das heißt: Wenn sich die Länge der Faktoren verdoppelt, vervierfacht sich die Rechenzeit bei der schriftlichen Addition. Verzehnfacht sich die Länge der Summanden, verhundertfacht sich die Rechenzeit.
𝒪-Notation
Die genauen Details, wie viele Schritte nun exakt nötig sind, sind eher unerheblich. Interessant ist nur, in welcher groben Größenordnung man unterwegs ist. Deswegen benutzt man in der Informatik die -Notation, um Laufzeiten zu beschreiben.
- bedeutet: zwischen der Länge der Eingabe und der Laufzeit besteht ein linearer Zusammenhang; wenn die Länge der Eingabe sich ver--facht, ver--facht sich auch die Laufzeit des Algorithmus.
- bedeutet: zwischen der Länge der Eingabe und der Laufzeit besteht ein quadratischer Zusammenhang; wenn die Länge der Eingabe sich ver--facht, ver--facht sich die Laufzeit des Algorithmus.
- bedeutet: zwischen der Länge der Eingabe und der Laufzeit besteht kein Zusammenhang; wenn die Länge der Eingabe sich ver--facht, bleibt die Laufzeit des Algorithmus konstant.
Ganz allgemein gilt: Wenn ich sage: "Die Laufzeit vom Algorithmus X liegt in ", dann meine ich: "Die Laufzeit lässt sich als mathematischer Term mit der Variablen angeben und es gibt eine Zahl , sodass gilt: ab einer gewissen Schwelle ist der Term, der die Laufzeit beschreibt, kleiner als ".
Grundsätzlich kann in die Klammern hinter dem jeder beliebige mathematische Term geschrieben werden. Das Ziel der Notation ist es aber, die Größenordnung der Laufzeit schnell deutlich zu machen, weswegen man sich bemüht, den Term möglichst knapp, aber auch möglichst präzise zu halten.
Die -Notation gibt nämlich nur eine obere Schwelle an. heißt nicht, dass sich die Laufzeit exakt in der Größenordnung von bewegt, sondern nur, dass sie nicht schneller wächst.