Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann."—  Präsentation transkript:

1 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann

2 2 Heapsort Effizientes Verfahren zum Sortieren (auch im worst case in O(n log n)) Prinzip: Sortieren durch wiederholtes Auswählen des Maximums (ähnlich Selection Sort) Besonderheit: Verwendung einer Datenstruktur Heap, welche die Bestimmung des Maximums effizient unterstützt Definition. Eine Folge F = (k 1, k 2,..., k n ) von Schlüsseln ist ein (Max-) Heap, wenn für alle i {1, 2, …, n/2} gilt: k i k 2i und k i k 2i+1. Heapsort operiert auf einem Array, das man mithilfe eines vollständigen Baumes veranschaulicht.

3 3 Veranschaulichung der Heap-Ordnung Veranschaulichung des Heaps durch Binär-Baum mit Positionsnummern: Level i hat 2 i Knoten (außer dem letzten) Knoten sind von oben nach unten und von links nach rechts nummeriert. Knoten i hat Knoten 2i als linken und Knoten 2i + 1 als rechten Nachfolger und Knoten i/2 als Vorgänger (falls jeweils vorhanden). Aus der Heap-Bedingung k i k 2i und k i k 2i+1 folgt: Das Maximum steht an der Wurzel (an Index 1) und kann sofort entfernt werden

4 4 Heapsort Sortieren mit Hilfe eines Heaps: Phase 1: Verwandeln des gegebenen Arrays in einen Heap Phase 2: Iterieretes Extrahieren des Maximums (von Position 1), Tauschen des Elementes mit höchstem Index im nichtsortierten Teil an Position1 und versickern lassen im Rest. Phase 2 wird n-Mal ausgeführt, jede Ausführung kostet höchstens O(log n) Schlüsselvergleiche. Phase 1 kann in Zeit O(n) ausgeführt werden. Gesamtlaufzeit von Heapsort: O(n log n)

5 5 Heapaufbau Niveau, #Knoten, Versick.-Aufwand/Knoten

6 6 Aufwand für Heapaufbau Gesamtaufwand = 2 0 2k (k-1) (k-2) + … + 2 (k-1 ) 2 = 2 S(k), mit S(k) = 2 0 k (k-1) (k-2) + … + 2 (k-1 )1 = 2 (n – k – 1) = O(n)


Herunterladen ppt "1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann."

Ähnliche Präsentationen


Google-Anzeigen