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:sortieren:landau_revisited:start [31.01.2022 18:52] – [Worst Case] sbel | faecher:informatik:oberstufe:algorithmen:sortieren:landau_revisited:start [31.01.2024 16:48] (aktuell) – [Quicksort] Marco Kuemmel | ||
---|---|---|---|
Zeile 22: | Zeile 22: | ||
Eine Besonderheit des Quicksort-Algorithmus ist, dass er Aufwand von der Wahl des Pivotelement abhängt. | Eine Besonderheit des Quicksort-Algorithmus ist, dass er Aufwand von der Wahl des Pivotelement abhängt. | ||
- | Das hast du vielleicht bei deinen Übungen bereits bemerkt: Wenn man das Element stets sehr ungünstig wählt, gewinnt man bei Aufteilen des Problem | + | Das hast du vielleicht bei deinen Übungen bereits bemerkt: Wenn man das Element stets sehr ungünstig wählt, gewinnt man beim Aufteilen des Problems |
<WRAP center round info 95%> | <WRAP center round info 95%> | ||
Zeile 28: | Zeile 28: | ||
</ | </ | ||
- | Aber was bedeutet **Worst Case** und **Avergae | + | Aber was bedeutet **Worst Case** und **Average |
===== Die Landau Notation im Detail ===== | ===== Die Landau Notation im Detail ===== | ||
Zeile 114: | Zeile 114: | ||
==== Best Case/ | ==== Best Case/ | ||
+ | |||
+ | Wir wählen bei unserem sortierten Beispielarray jetzt immer das mittlere Element als Privotelement und schauen, was dann passiert: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Die Größe des Call Stacks ist hier nur 4 -- oder allgemein (analog zur binären Suche) von der Ordnung '' | ||
+ | |||
+ | Da es aber nur log n Ebenen gibt, ist der Aufwand von Quicksort im Best Case O(n * log n) also O(n log n) | ||
+ | |||
+ | Wenn du immer ein zufälliges Element des Arrays als Pivotelement auswählst, beträgt die Laufzeit von Quicksort auch im | ||
+ | Durchschnitt O(n log n): Der **Average Case** ist der **Best Case**. | ||
+ | ---- | ||
+ | {{: | ||
+ | === (A2) === | ||
+ | |||
+ | Welche Laufzeiten haben die folgenden Operationen? | ||
+ | |||
+ | * Ausgabe der Werte aller Elemente in einem Array. | ||
+ | * Verdoppeln der Werte aller Elemente in einem Array. | ||
+ | * Verdoppeln des Werts des ersten Elements in einem Array. | ||
+ | * Erzeugen einer Multiplikationstabelle mit allen Elementen in einem Array. Es soll jedes Array-Element mit jedem anderen multipliziert werden. |