From: Martin Mares Date: Fri, 15 Jan 2010 16:02:14 +0000 (+0100) Subject: Paralelni scitani a trideni: opravy preklepu a sazby. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=9c081188a6a77b320623c4d79b68d86a950fae04;p=ads2.git Paralelni scitani a trideni: opravy preklepu a sazby. --- diff --git a/5-addsort/5-addsort.tex b/5-addsort/5-addsort.tex index d4c400e..827d105 100644 --- a/5-addsort/5-addsort.tex +++ b/5-addsort/5-addsort.tex @@ -184,15 +184,15 @@ Form $$x_0\leq x_1\leq \dots \leq x_k \geq x_{k+1}\geq\dots \geq x_{n-1}.$$ \s{Definice:} Posloupnost $x_0 \dots x_{n-1}$je {\I bitonická}, právì kdy¾ $\exists~j\in \{0,\dots ,n-1\}$, pro -které je rotace pùvodní posloupnosti o $j$ prvkù (posloupnost -$x_j,x_{(j+1) \bmod n},\dots, x_{(j+n-1) \bmod n}$) èistì bitonická. +které je rotace pùvodní posloupnosti o $j$ prvkù, tedy posloupnost +$$x_j,x_{(j+1) \bmod n},\dots, x_{(j+n-1) \bmod n},$$ èistì bitonická. \s{Definice:} {\I Separátor $S_n$} je sí», ve které jsou v¾dy~$i$-tý a~$(i+{n/2})$-tý prvek vstupu (pro $i=0,\dots, {n/2}-1$) propojeny komparátorem. Minimum se pak stane~$i$-tým, maximum $(i+{n/2})$-ním prvkem výstupu. \figure{sortnet.3}{$(y_i, y_{i+{n/2}}) = \(x_i, x_{i+{n/2}})$} {300pt} -\s{Lemma:} Pokud je vstup separátoru bitonická posloupnost, pak jeho výstup $y_0, \dots, y_{n-1}$ +\s{Lemma:} Pokud separátor dostane na~vstupu bitonická posloupnost, pak jeho výstup $y_0, \dots, y_{n-1}$ splòuje: (i) $y_0,\dots, y_{n/2 -1}$ a~$y_{n/2},\dots, y_{n-1}$ jsou @@ -305,7 +305,7 @@ Toto zredukov Pokud jsme mìli na~zaèátku $n$ èísel, po~první redukci nám jich zbývá jen $2/3 \cdot n$ a~obecnì v~$k$-té hladiné $(2/3)^k \cdot n$. Znamená to, ¾e èísel nám ubývá exponenciálnì, tak¾e poèet hladin bude logaritmický. Redukující obvod je pøi tom jen konstantnì hluboký, tak¾e celé redukování zvládneme v~èase $\Theta (\log n)$. Na~konci Slo¾itìj¹ího stromeèku pak máme umístìnou jednu obyèejnou sèítaèku, která zbývající dvì èísla seète v~logaritmickém èase. -Celé sèítání $n$ $n$-bitových èísel nám tedy zabere $\Theta (\log n)$ hladin. +Seètení v¹ech $n$ èísel tedy zabere $\Theta (\log n)$ hladin. Kdy¾ se nyní vrátíme k~násobení, zbývá nám vyøe¹it posouvání a~{\sc and}ování. Uvìdomme si, ¾e to je plnì paralelení a~zvládneme ho za~konstantnì mnoho hladin. Celé násobení tedy zvládneme v~logaritmickém èase.