Datenstrukturen und Algorithmen
Welches Sortierverfahren hat auch im schlechtesten Fall die Komplexität O(n log n) und sortiert fast ohne zusätzlichen Speicher wie ein Arbeitsarray?
- AMergesort
- BHeapsort
- CQuicksort
Antwort und Erläuterung anzeigen
Antwort: B. Heapsort
Heapsort baut innerhalb des Arrays einen binären Heap auf, tauscht wiederholt das Maximum an der Wurzel mit dem letzten Element und verkleinert den Heap; es läuft daher auch im schlechtesten Fall in O(n log n) und braucht nur konstant viel zusätzlichen Speicher. Mergesort ist im schlechtesten Fall ebenfalls O(n log n), braucht auf einem Array aber einen Arbeitsbereich proportional zu n. Quicksort ist im Mittel O(n log n) und in der Praxis schnell, kann aber je nach Pivotwahl und Daten auf O(n²) absinken. Heapsort vergleicht allerdings weit auseinanderliegende Elemente, nutzt den Cache daher schlecht und ist auch nicht stabil.