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:sorting:insertionsort:start [04.02.2024 11:22] – [Beispiel] Marco Kuemmel | faecher:informatik:oberstufe:algorithmen:sorting:insertionsort:start [06.02.2025 08:06] (aktuell) – [Beispiel] Frank Schiebel | ||
---|---|---|---|
Zeile 34: | Zeile 34: | ||
++++ | ++++ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | |||
+ | < | ||
+ | Ein Sortieralgorithmus ist **stabil**, wenn er die ursprüngliche Reihenfolge von Elementen mit gleichem Schlüsselwert beibehält. | ||
+ | |||
+ | Das bedeutet, wenn zwei Elemente den gleichen Sortierschlüssel haben, bleibt ihre relative Position zueinander nach dem Sortieren unverändert. | ||
+ | |||
+ | Diese Eigenschaft ist besonders wichtig, wenn: | ||
+ | |||
+ | * Datensätze nach mehreren Kriterien sortiert werden sollen | ||
+ | * Die ursprüngliche Reihenfolge eine semantische Bedeutung hat | ||
+ | |||
+ | Als Beispiel: Wenn wir eine Liste von Personen erst nach Alter und dann nach Namen sortieren, ist es oft wichtig, dass die ursprüngliche Reihenfolge bei gleichaltrigen Personen erhalten bleibt. | ||
+ | |||
+ | Der Selectionsort-Algorithmus ist in seiner Grundform nicht stabil, da beim Vertauschen von Elementen im unsortierten Bereich die ursprüngliche Reihenfolge von Elementen mit gleichem Wert verändert werden kann - man kann Selectionsort jedoch auch stabil implementieren. | ||
+ | </ | ||
+ | |||
+ | (a) Überprüfe, | ||
+ | |||
+ | (b) Ändere in der Klasse " | ||
+ | |||
+ | <code java> | ||
+ | protected boolean less(String v, String w) { | ||
+ | return v.compareTo(w) <= 0; // Kleiner gleich, nicht nur echt kleiner! | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Überprüfe erneut, ob sein Selectionsort Algorithmus jetzt stabil ist. |