Commit ba7bb406 authored by Dominikus Herzberg's avatar Dominikus Herzberg

Zwei Mini-Schreibkorrekturen

parent bfeec721
# Quicksort mit Streams
Der Quicksort-Algorithmus beschreibt ein sehr schnelles Sortierverfahren. Rekursiv formuliert kommt der Algorithmus sehr elegant daher. Verbreitet ist die Beschreibung in der funktionalen Programmiersprache Haskell. Die Schreibweise in Haskell besticht in ihrer Kürze, die ohne ablenkende Details daherkommt.
Der Quicksort-Algorithmus beschreibt ein sehr effizientes Sortierverfahren. Rekursiv formuliert kommt der Algorithmus sehr elegant daher. Verbreitet ist die Beschreibung in der funktionalen Programmiersprache Haskell. Die Schreibweise in Haskell besticht in ihrer Kürze, die ohne ablenkende Details daherkommt.
~~~ haskell
quicksort [] = []
......@@ -19,7 +19,7 @@ Es gibt einige Beispiele im Netz, in denen dieser Algorithmus in Java genau in d
Es gibt zwei Gründe, warum beide Beispiele zwischen Streams und Listen hin und her wechseln:
1. Nach einem Durchlauf durch die Elemente des Streams ist der Stream unbrauchbar für einen Wiederholungslauf; man kann mit einem Stream keinen `filter`-Durchlauf für die Elemente machen, die kleiner/gleich dem Pivot-Element sind, und _danach_ einen zweiten Durchlauf anschließen, der die größeren Elemente rausfiltert
1. Nach einem Durchlauf durch die Elemente des Streams ist der Stream unbrauchbar für einen Wiederholungslauf; man kann mit einem Stream keinen `filter`-Durchlauf für die Elemente machen, die kleiner/gleich dem Pivot-Element sind, und _danach_ einen zweiten Durchlauf anschließen, der die größeren Elemente rausfiltert..
2. Man kann aus einem Stream nicht so ohne Weiteres das erste Element entfernen, um an das Pivot-Element zu kommen, und anschließend mit dem Rest der Liste weiterarbeiten.
Die folgende Umsetzung versteht sich als "Fingerübung", um trotz dieser Schwierigkeiten eine Quicksort-Umsetzung zu realisieren, die ausschließlich auf Streams basiert. Der Einfachheit halber beschränke ich die Implementierung auf `IntStreams`.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment