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
1.
j : a0a1 ... ajaj + 1aj + 2 ... 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 i,jn - 1 : diej .
Beweisidee: siehe Bild 8.2.
Minimum ( ) 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.