prev up inhalt next


8.3 Sortiernetzwerke

Zur Formulierung paralleler Sortieralgorithmen eignen sich Sortiernetzwerke, in denen der Datenfluß mittels Compare-Exchange-Bausteinen gesteuert wird. Die Laufzeit wird bestimmt durch die Anzahl der Baugruppen, die hintereinander durchlaufen werden.


  Compare-Exchange-Baustein (a)
  vereinfachte Darstellung im Netzwerk (b)

Definition:
Eine Folge a0,a1,...,an - 1 heißt bitonisch $\Leftrightarrow$
1.
$\exists$j : a0 $\leq$ a1 $\leq$...$\leq$ aj $\geq$ aj + 1 $\geq$ aj + 2 $\geq$...$\geq$ an - 1 oder
2.
die Folge erfüllt Eigenschaft 1 nach zyklischem Shift
Beispiel: 3, 7, 12, 14, 13, 8, 5, 1 ist bitonisch
  8, 5, 1, 3, 7, 12, 14, 13 ist bitonisch.
Satz:
Sei a0,a1,,...,a2n - 1 bitonisch. Dann ist auch di = min(ai,ai + n),i = 0,...,n - 1 und ei = max(ai,ai + n),i = 0,...,n - 1 bitonisch. Außerdem gilt für 0 $\leq$ i,j $\leq$ n - 1 : di $\leq$ ej .
Beweisidee: siehe Bild 8.2.


Minimum ( $\bullet$ ) und Maximum ( o ) der Paare (ai,ai + n)

Idee des bitonischen Sortierens:
Eine bitonische Folge a0,a1,...,a2n - 1 sortiert man, indem man die Folgen di,i = 0,...,n - 1 und ei,i = 0,...,n - 1 bildet, diese sortiert und das Ergebnis konkateniert. Eine beliebige Folge a0,a1,...,a2n - 1 sortiert man, indem man a0,...,an - 1 aufsteigend sortiert, an,...,a2n - 1 absteigend sortiert, die Ergebnisse konkateniert und als bitonische Folge sortiert.




prev up inhalt next