Introsort

Introsort ist ein Sortieralgorithmus. Der Begriff ist eine Kurzform für „introspektives Sortieren“. Der Algorithmus ist eine Variation von Quicksort, welche in entarteten Fällen auf ein anderes Sortierverfahren mit Worst-Case-Laufzeit (zum Beispiel Heapsort) zurückfällt. Dazu wird zu Beginn jedes Rekursionsschrittes anhand einer Bewertungsfunktion entschieden, ob ein anderer Algorithmus für die Sortierung der Teilliste verwendet werden soll (zum Beispiel bei Erreichen einer bestimmten Rekursionstiefe).

Auf diese Weise wird die Geschwindigkeit von Quicksort mit einer worst-case Zeitkomplexität gekoppelt (gegenüber bei reinem Quicksort). Die exakte Laufzeit ist in den entarteten Fällen etwas höher als bei direkter Anwendung des optimalen Algorithmus, da bis zum Rückfall auf das alternative Sortierverfahren Quicksort durchlaufen wird.

Bekannt geworden i​st Introsort v​or allem dadurch, d​ass Silicon Graphics i​n seiner Standard Template Library für C++ s​eit einigen Jahren a​uf Introsort s​tatt Quicksort zurückgreift. Inzwischen w​urde Introsort a​uch in andere Implementierungen d​er C++ Standard Library übernommen, u​nter anderem i​n die d​er GCC.

Literatur

  • David R. Musser: Introspective Sorting and Selection Algorithms. Software Practice and Experience 27(8): 983, 1997
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.