Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:big_o:start [23.07.2020 11:04] – sbel | faecher:informatik:oberstufe:algorithmen:big_o:start [21.02.2024 10:28] (aktuell) – [Tabelle] Marco Kuemmel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Aufwandsbeurteilung: | ====== Aufwandsbeurteilung: | ||
- | Wenn man ein Element in einer sortierten Liste sucht und den Aufwand vergleicht, je nachdem ob man die einfache Suche (der Reihe nach jedes Element ansehen) oder die binäre Suche verwendet, kann man zu den folgenden Erkenntnissen gelangen. | + | Wenn man ein Element in einer sortierten Liste sucht und den Aufwand vergleicht, je nachdem ob man die einfache Suche (der Reihe nach jedes Element ansehen) oder die [[..: |
- | Angenommen, es dauert 1ms, um ein Element zu überprüfen - wie lange dauert es jeweils, in einer Liste mit 100 Elementen das gesuchte zu finden? Naja, das kommt drauf an - es könnte ja bei beiden Methoden sein, das bereits die erste Betrachtung das gesuchte Element findet, dann dauert es 1ms((wenn man annimmt, dass die anderen Operationen im Vergleich fast keine Zeit beanspruchen)), | + | Angenommen, es dauert 1ms, um ein Element zu überprüfen - wie lange dauert es jeweils, in einer Liste mit 100 Elementen das gesuchte zu finden? Naja, das kommt drauf an - es könnte ja bei beiden Methoden sein, das bereits die erste Betrachtung das gesuchte Element findet, dann dauert es 1ms((wenn man annimmt, dass die anderen Operationen im Vergleich fast keine Zeit beanspruchen)), |
- | <WRAP center round info 94%> | + | <WRAP center round info 95%> |
- | Darum einigt man sich, dass man bei der Beurteilung von Algorithmen bevorzugt den schlechtesten Fall (" | + | Darum einigt man sich, dass man bei der Beurteilung von Algorithmen bevorzugt den schlechtesten Fall (" |
</ | </ | ||
- | + | ||
+ | Der schlechteste Fall bei der binären Suche dauert 7ms, also nur 1/15 mal so lang. Die binäre Suche ist also 15 mal schneller als die einfache Suche?! Stimmt das? Dazu betrachten wir die folgende Tabelle, in der die "worst case" | ||
+ | |||
+ | |||
+ | |||
+ | ^ Zahl der Elemente | ||
+ | | 100 | 100ms | 7ms | | ||
+ | | 10.000 | ||
+ | | 1.000.000 | ||
+ | |||
+ | Man sieht, dass die Laufzeiten **mit der Zunahme der Zahl der Elemente sehr unterschiedlich zunehmen**. | ||
+ | |||
+ | <WRAP center round info 95%> | ||
+ | Um diesen Umstand darzustellen, | ||
+ | </ | ||
+ | |||
+ | Für unser Beispiel oben: | ||
+ | |||
+ | ^Einfache Suche ^ Binäre Suche ^ | ||
+ | | O(n) | O(log n) | | ||
+ | |||
+ | ===== Übung ===== | ||
+ | |||
+ | Du sollst auf einem Blatt Papier 16 rechteckige Kästchen erzeugen. Wie effizient sind die folgenden beiden Algorithmen? | ||
+ | |||
+ | - Du zeichnest mit einem Stift nacheinander Kästchen für Kästchen auf das Blatt. | ||
+ | - Du faltest das Blatt jeweils auf seine Hälfte und verwendest die Faltmarken als Ränder der Quadrate. | ||
+ | |||
+ | * Überlege zunächst, wie viele Operationen du für 16 Kästchen jeweils benötigst. | ||
+ | * Wie viele Operationen benötigt man, um 32 oder 64 Kästchen zu erzeugen? | ||
+ | * Wie effizient sind die beiden Vorgehensweisen in der Landau-Notation? | ||
+ | * Josephine sagt: " | ||
+ | |||
+ | |||
+ | ====== " | ||
+ | |||
+ | * //O(log n) - " | ||
+ | * //O(n) - " | ||
+ | * //O(n*log n)//, ein schneller Sortieralgorithmus | ||
+ | * //O(n^2)//, ein langsamer Sortieralgorithmus | ||
+ | * //O(n!)//, ein sehr langsamer Algorithmus (Problem des Handlungsreisenden, | ||
+ | |||
+ | ====== Zusammenfassung ====== | ||
+ | |||
+ | <WRAP center round info 95%> | ||
+ | * Die Geschwindigkeit eines Algorithmus wird **nicht** als Zeit (z. B. in Sekunden) angegeben, sondern durch die Betrachtung der **Zunahme der Anzahl der Operationen**. | ||
+ | * Wir schauen, wie schnell die Laufzeit zunimmt, wenn die Größe der Eingabe zunimmt. | ||
+ | * Die Laufzeit wird in der Landau Notation aufgeschrieben | ||
+ | </ | ||
+ | |||
+ | ====== Aufgaben ====== | ||
+ | |||
+ | Gib die Laufzeit der folgenden Probleme in Landau-Notation an (das Telefonbuch ist aus Papier). | ||
+ | |||
+ | * Finde die Telefonnummer einer Person mit bekanntem Namen | ||
+ | * Finde den Namen einer Person anhand einer bekannten Telefonnummer. | ||
+ | * Es sollen alle Namen und Telefonnummern eingelesen werden. | ||
+ | * Es sollen alle Namen und Telefonnummern von Personen eingelesen werden, deren Namen mit A beginnt. |