]> mj.ucw.cz Git - ads2.git/commitdiff
Nulta verze kapitoly o tridicich sitich.
authorMartin Mares <mj@ucw.cz>
Fri, 14 Dec 2007 20:23:29 +0000 (21:23 +0100)
committerMartin Mares <mj@ucw.cz>
Fri, 14 Dec 2007 20:23:29 +0000 (21:23 +0100)
12 files changed:
5-sortnet/5-sortnet.tex [new file with mode: 0644]
5-sortnet/Makefile [new file with mode: 0644]
5-sortnet/sortnet.0 [new file with mode: 0644]
5-sortnet/sortnet.1 [new file with mode: 0644]
5-sortnet/sortnet.2 [new file with mode: 0644]
5-sortnet/sortnet.3 [new file with mode: 0644]
5-sortnet/sortnet.4 [new file with mode: 0644]
5-sortnet/sortnet.5 [new file with mode: 0644]
5-sortnet/sortnet.6 [new file with mode: 0644]
5-sortnet/sortnet.7 [new file with mode: 0644]
5-sortnet/sortnet.mp [new file with mode: 0644]
all/Makefile

diff --git a/5-sortnet/5-sortnet.tex b/5-sortnet/5-sortnet.tex
new file mode 100644 (file)
index 0000000..fb047a1
--- /dev/null
@@ -0,0 +1,194 @@
+\input ../lecnotes.tex
+\input epsf
+\def\itm{\item{$\bullet$}}
+
+\prednaska{5}{Goldbergùv algoritmus}{(zapsaly T.~Klimo¹ová 
+a~K.~B\"ohmová)}
+
+\h{Goldbergùv algoritmus -- pokraèování}
+
+Algoritmus upøesníme tak, ¾e místo libovolného vrcholu s~pøebytkem
+budeme v¾dy pracovat s~tím, který je na nejvy¹¹í hladinì. Jak doká¾eme
+v~následujícím lemmatu, sní¾í se tím poèet potøebných nenasycených
+pøevedení. Takto modifikovaný algoritmus budeme znaèit~$G'$.
+
+\s{Lemma $N'$:} V~algoritmu $G'$ je poèet nenasycených pøevedení
+$\O(N^3)$.
+
+\proof
+Definujme $H$~jako maximální vý¹ku vrcholù s~pøebytkem.
+ $$H:=\max\{h(v);v \not= z,s, f^\triangle (v)\geq 0\}$$
+Bìh algoritmu $G'$ rozdìlíme na fáze tak, ¾e fáze skonèí po ka¾dé zmìnì
+$H$. Odhadneme poèet nenasycených pøevedení v~jedné fázi: bude jich
+nanejvý¹ stejnì, jako vrcholù, které se na zaèátku fáze nacházely na
+nejvy¹¹í hladinì -- z~jiných vrcholù v~prùbìhu fáze nic nepøevádíme,
+a~nenasycené pøevedení mù¾eme provést z~ka¾dého vrcholu nejvý¹e
+jednou. Poèet nenasycených pøevedení za fázi je $\leq N$.
+
+Odhadneme poèet fází: rozdìlíme fáze podle toho, jestli konèí sní¾ením
+nebo zvý¹ením~$H$ a~odhadneme jejich poèty. Maximálnì $2N^2$ fází mù¾e
+konèit zvý¹ením~$H$, proto¾e dle lemmatu Z~provedeme nanejvý¹ $2N^2$
+zvednutí. Sní¾ením~$H$ mù¾e konèit nanejvý¹ $2N^2$ fází, proto¾e~$H$
+klesne v¾dy alespoò o~1, pùvodnì bylo 0 a~nikdy nemù¾e být záporné --
+klesnout tedy nemù¾e víckrát ne¾ vzrùst. 
+
+Máme maximálnì $4N^2$ fází o~nejvý¹e~$N$ nenasycených pøevedení,
+celkem tedy algoritmus $G'$ provede $\O(N^3)$ nenasycených pøevedení.
+\qed
+
+\medskip
+Ve skuteènosti je algoritmus je¹tì lep¹í (alespoò pro øídké grafy):
+
+\s{Lemma $N''$:} V~algoritmu $G'$ je poèet nenasycených pøevedení $\O(N^2
+\sqrt M)$.
+
+\proof
+(Nezkou¹í se.) Algoritmus rozdìlíme na fáze stejnì jako v~dùkazu
+pøedchozího lemmatu a~zvolíme pøirozené èíslo~$K$ (jak velké ho
+zvolíme, se rozhodneme a¾ na konci dùkazu).
+Fáze tentokrát budeme dìlit na drahé, v~nich¾ se provede více ne¾~$K$
+nenasycených pøevedení, a~laciné, v~nich¾ se nenasycených pøevedení
+provede maximálnì~$K$.
+
+Nyní budeme zkoumat poèty pøevedení v~obou typech fází.
+Jak víme z~minulého lemmatu, v¹ech fází je nanejvý¹ $4N^2$, tak¾e
+v~laciných se provede nanejvý¹ $N^2K$ nenasycených pøevedení.
+Za úèelem zkoumání drahých fází definujeme potenciál
+$$\psi:=\sum_{v\not=z,s; f^\triangle(x)>0}{ p(v)\over K},$$ kde
+$p(v):= \vert\{u : h(u) \leq h(v)\}\vert$, èili poèet vrcholù ve stejné
+nebo men¹í vý¹ce ne¾~$v$. Víme, ¾e na zaèátku bude $\psi \leq
+{N^2/K}$ a~po celou dobu bude $\psi \geq 0$.
+
+Zvednutím vrcholu~$v$ se hodnota $p(v)$ zvý¹í maximálnì o~$N$, u~libovolného
+jiného vrcholu~$w$ $p(w)$ klesne nebo se nezmìní, potenciál tedy
+vzroste maximálnì o~$N/K$. Pøedchozích èástí
+Pøi sytém pøevedení po hranì z~$u$ do~$v$ (z~minula víme, ¾e se v¾dy
+provádí po hranì spádu nejvý¹e 1) se mohl potenciál zmen¹it o~$p(u)/K$
+a~mohl se zvìt¹it o~$p(v)/K$. Zvìt¹í se tedy nanejvý¹ o~$N/K$
+Pøi nenasyceném pøevedení z~potenciálu urèitì ubyde o~$p(u)/K$
+a~mo¾ná pøibyde $p(v)/K$. Celkovì se tedy sní¾í nanejvý¹
+o~${p(u)/K} - {p(v)/K}$, co¾ je $1/K$~poètu prvkù na nejvy¹¹í
+hladinì. Z~minulého lemmatu víme, ¾e poèet nenasycených pøevedení
+v~jedné fázi je men¹í nebo roven poètu vrcholù na nejvy¹¹í hladinì na
+zaèátku fáze. Vzhledem k~tomu, ¾e zkoumáme drahé fáze v~nich¾ probìhne
+více ne¾~$K$ nenasycených pøevedení, vrcholù na nejvy¹¹í hladinì musí
+být na zaèátku fáze také více ne¾~$K$, potenciál se tedy sní¾í o~více
+ne¾ ${K/K}=1$.
+
+Potenciál $\psi$ tedy pøijme na zaèátku  nanejvý¹ ${N^2/K}$, pøi
+zvedání nevzroste o~víc ne¾ $(N/K)2N^2$, pøi sytém pøevádìní
+nevzroste o~víc ne¾ $(N/K)NM$, celkem dostáváme $\psi\leq
+(N/2)(N+2N^2+NM)=\O({N^2}M/2)$, v~drahých fázích tak mù¾e probìhnout
+nanejvý¹ $\O({N^2}M/2)$ nenasycených pøevedení.
+Celkem algoritmus vykoná $\O(N^2K+{N^2}M/K)$ nenasycených
+pøevedení. Kdy¾ za~$K$ dosadíme $\sqrt M$ dostaneme slíbený poèet
+$\O(N^2\sqrt M)$.
+\qed
+
+\medskip
+\h{Tøídìní}
+
+\s{Definice:} Komparátorová sí» je kombinaèní obvod jeho¾ hradla jsou
+komparátory: 
+
+\centerline{\epsfbox{sortnet.0}}
+
+Výstupy komparátorù se nevìtví.
+
+\medskip
+{\>\sl Bubble sort}
+
+\twofigures{sortnet.1}{Bubble.1}{143pt}{sortnet.2}{Bubble.2}{143pt}
+
+Sna¾íme se výpoèet co nejvíce paralelizovat (viz obrázek Bubble.2). 
+Takto se nám podaøilo výpoèet provést pomocí $\O(n^2)$ komparátorù
+rozmístìných na $\O(n)$ hladinách. Tøídíme v~èase~$N$ a~prostoru
+$N^2$.
+
+\medskip
+{\>\sl Merge sort}
+
+\centerline{\epsfbox{sortnet.4}}
+
+\medskip
+\s{Definice:} Øekneme, ¾e posloupnost $x_0,\dots,x_{n-1} $ je èistì bitonická,
+pokud pro nìjaké $x_j\in\{1\dots n-1\} $ platí, ¾e 
+$$x_0\leq x_1\leq \dots \leq x_j \geq x_{j+1}\geq\dots \geq x_{n-1}$$
+Posloupnost je bitonická, pokud existuje $k\in \{1\dots n-1\}$, pro
+které platí, ¾e posloupnost
+$x_k,x_{k+1 \bmod n},\dots, x_{k+n-1 \bmod n}$ je èistì bitonická.
+
+\s{Definice: Separátor $S_n$}
+Je sí», ve které jsou v¾dy~$i$-tý a~$i+1$-ní (pro $i=0,\dots,
+{n/2}-1$) prvek vstupu propojeny komparátorem, minimum bude~$i$-tým,
+maximum  $i+1$-ním prvkem výstupu.
+\figure{sortnet.3} 
+{$(y_i, y_{i+{n/2}}) = CMP(x_i, x_{i+{n/2}})$} {300pt}
+
+\s{Lemma:} Pokud vstup $S_n$ je bitonická posloupnost, pak výstup
+$y_0,\dots, y_{n-1}$ je posloupnost,  která splòuje:
+
+(i) $y_0,\dots, y_{n/2 -1}$ a~$y_{n/2},\dots, y_{n-1}$ jsou 
+bitonické posloupnosti.
+
+(ii) Pro v¹echna $i,j< {n/2}$ platí $y_i < y_j + {n/2}$
+
+\proof
+(i) Nejprve nahlédneme, ¾e Lemma platí je-li vstupem èistì bitonická
+posloupnost -- najdeme nejmen¹í~$k$ takové, ¾e $x_k$ a~$x_{k+{n/2}}$
+se prohodí. Pokud ho nenajdeme, separátor neudìlá vùbec nic a~obì
+tvrzení lemmatu zøejmì tedy platí. Øeknìme, ¾e $x_m$ je maximum
+vstupní posloupnosti. Pak~$k$ bude jistì men¹í ne¾~$m$
+a~$x_{k+{n/2}}$ bude vìt¹í ne¾~$m$, mezi~$k$ a~$m$ je tedy vstupní
+posloupnost neklesající, mezi $k+{n/2}$ a~$n-1$ nerostoucí.
+Uvìdomíme si, ¾e pro ka¾dé~$i$, $k\leq i\leq {n/2}-1$ se prvky
+$x_i$ a~$x_{i+{n/2}}$ prohodí. Úsek mezi~$k$ a~${n/2}-1$ tedy
+nahradíme nerostoucí posloupností, první polovina výstupu tedy bude
+(dokonce èistì) bitonická. Úsek $k+{n/2}$ a~$n-1$ nahradíme èistì
+bitonickou posloupností, která bude neklesající, je-li $m\geq {n/2}$, 
+v~opaèném pøípadì je úsek ${n/2}-1$ a¾ $k+{n/2}$
+nerostoucí. V~obou pøípadech budou v~posloupnosti maximálnì dva zlomy
+a~mezi $x_{n/2}$ a~$x_{n-1}$ bude správná nerovnost na to, aby
+posloupnost byla bitonická.
+
+Dostaneme-li na vstup obecnou bitonickou posloupnost, pøedstavíme si,
+¾e je to èistì bitonická posloupnost zrotovaná o~$r$ prvkù (BÚNO
+doprava), a~zjistíme, ¾e v~komparátorech se porovnávají tyté¾ prvky
+jako kdyby zrotovaná nebyla. Výstup se od výstupu èistì bitonické
+posloupnosti zrotovaného o~$r$ bude li¹it prohozením úsekù $x_0$ a¾
+$x_{r-1}$ a~$x_{n/2}$ a¾ $x_{{n/2}+r-1}$. Obì polovièní
+posloupnosti tedy budou zrotované o~$r$ prvkù, ale na jejich
+bitoniènosti se nic nezmìní.
+
+(ii) Plyne z~definice separátoru.
+
+\medskip
+\centerline{\epsfbox{sortnet.7}}
+
+\medskip
+\s{Definice: Bitonická tøídièka $B_n$}  
+
+\centerline{\epsfbox{sortnet.5}}
+
+Separátor má jednu hladinu s~${\O}(N)$ hradly, tøídièka tedy bude
+mít 
+$\log N$ hladin s~${\O}(N\log N)$ hradly.
+
+Tøídièka se dá pou¾ít ke slévání, mù¾eme tak s~její pomocí sestavit
+souèástky $M_n$ mergesortové sítì. Setøídìné posloupnosti 
+$x_0,\dots, x_{n-1}$ a~$y_0,\dots, y_{n-1}$ spojíme do jedné bitonické 
+$x_0,\dots, x_{n-1},y_{n-1},\dots, y_0$. Z~takové posloupmosti pomocí
+$B_{2n}$ vytvoøíme setøídìnou posloupnost.
+
+
+\centerline{\epsfbox{sortnet.6}}
+
+Z~bitonických tøídièek tedy mù¾eme postavit mergesortovou sí», která
+bude mít
+${\O}(\log^2 N)$ hladin a~${\O}(N\log^2 N)$ hradel.
+
+Existuje tøídící algoritmus, kterému staèí ${\O}(\log N)$ hladin,
+ale jeho multiplikaèní konstanta je pøíli¹ veliká, tak¾e je v~praxi 
+nepou¾itelný.
+
+\bye
diff --git a/5-sortnet/Makefile b/5-sortnet/Makefile
new file mode 100644 (file)
index 0000000..99c4a29
--- /dev/null
@@ -0,0 +1,3 @@
+P=5-sortnet
+
+include ../Makerules
diff --git a/5-sortnet/sortnet.0 b/5-sortnet/sortnet.0
new file mode 100644 (file)
index 0000000..3dabc76
--- /dev/null
@@ -0,0 +1,65 @@
+%!PS
+%%BoundingBox: -1 19 60 100 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmr10 9.96265 9.96265 61:c08c01
+%%EndProlog
+%%Page: 1 1
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 0 39.68497 moveto
+19.84248 39.68497 lineto
+39.68497 39.68497 lineto
+59.52745 39.68497 lineto
+59.52745 79.36993 lineto
+39.68497 79.36993 lineto
+19.84248 79.36993 lineto
+0 79.36993 lineto
+0 39.68497 lineto stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 19.84248 39.68497 moveto
+19.84248 19.84248 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 18.69446 22.61398 moveto
+19.84248 19.84248 lineto
+20.99051 22.61398 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 39.68497 39.68497 moveto
+39.68497 19.84248 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 38.53694 22.61398 moveto
+39.68497 19.84248 lineto
+40.833 22.61398 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 19.84248 99.21242 moveto
+19.84248 79.36993 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 18.69446 82.14143 moveto
+19.84248 79.36993 lineto
+20.99051 82.14143 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 39.68497 99.21242 moveto
+39.68497 79.36993 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 38.53694 82.14143 moveto
+39.68497 79.36993 lineto
+40.833 82.14143 lineto
+ closepath
+gsave fill grestore stroke
+17.35184 67.90173 moveto
+(a) cmr10 9.96265 fshow
+36.91756 67.90173 moveto
+(b) cmr10 9.96265 fshow
+11.54022 42.68497 moveto
+(min) cmr10 9.96265 fshow
+30.41417 42.68497 moveto
+(max) cmr10 9.96265 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.1 b/5-sortnet/sortnet.1
new file mode 100644 (file)
index 0000000..12189a9
--- /dev/null
@@ -0,0 +1,111 @@
+%!PS
+%%BoundingBox: -15 -1 128 166 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmr10 9.96265 9.96265 31:f80000000000000001
+%%EndProlog
+%%Page: 1 1
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [] 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 0 0 moveto
+0 155.90523 lineto stroke
+newpath 28.3464 0 moveto
+28.3464 155.90523 lineto stroke
+newpath 56.69281 0 moveto
+56.69281 155.90523 lineto stroke
+newpath 85.03922 0 moveto
+85.03922 155.90523 lineto stroke
+newpath 113.38562 0 moveto
+113.38562 155.90523 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 0 14.1732 moveto
+28.3464 14.1732 lineto stroke
+newpath 25.57474 13.02512 moveto
+28.3464 14.1732 lineto
+25.57474 15.32129 lineto
+ closepath
+gsave fill grestore stroke
+newpath 0 42.5196 moveto
+28.3464 42.5196 lineto stroke
+newpath 25.57474 41.37152 moveto
+28.3464 42.5196 lineto
+25.57474 43.6677 lineto
+ closepath
+gsave fill grestore stroke
+newpath 0 85.03922 moveto
+28.3464 85.03922 lineto stroke
+newpath 25.57474 83.89113 moveto
+28.3464 85.03922 lineto
+25.57474 86.1873 lineto
+ closepath
+gsave fill grestore stroke
+newpath 0 141.73203 moveto
+28.3464 141.73203 lineto stroke
+newpath 25.57474 140.58394 moveto
+28.3464 141.73203 lineto
+25.57474 142.88011 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 28.3464 moveto
+56.69281 28.3464 lineto stroke
+newpath 53.92114 27.19832 moveto
+56.69281 28.3464 lineto
+53.92114 29.49449 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 70.86601 moveto
+56.69281 70.86601 lineto stroke
+newpath 53.92114 69.71793 moveto
+56.69281 70.86601 lineto
+53.92114 72.0141 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 127.55882 moveto
+56.69281 127.55882 lineto stroke
+newpath 53.92114 126.41074 moveto
+56.69281 127.55882 lineto
+53.92114 128.70691 lineto
+ closepath
+gsave fill grestore stroke
+newpath 56.69281 56.69281 moveto
+85.03922 56.69281 lineto stroke
+newpath 82.26755 55.54472 moveto
+85.03922 56.69281 lineto
+82.26755 57.8409 lineto
+ closepath
+gsave fill grestore stroke
+newpath 56.69281 113.38562 moveto
+85.03922 113.38562 lineto stroke
+newpath 82.26755 112.23753 moveto
+85.03922 113.38562 lineto
+82.26755 114.5337 lineto
+ closepath
+gsave fill grestore stroke
+newpath 85.03922 99.21242 moveto
+113.38562 99.21242 lineto stroke
+newpath 110.61395 98.06433 moveto
+113.38562 99.21242 lineto
+110.61395 100.3605 lineto
+ closepath
+gsave fill grestore stroke
+ 0 0.69739 dtransform truncate idtransform setlinewidth pop
+ [0 3.49998 ] 1.74998 setdash
+newpath -14.1732 21.25981 moveto
+127.55882 21.25981 lineto stroke
+newpath -14.1732 49.60622 moveto
+127.55882 49.60622 lineto stroke
+newpath -14.1732 92.12582 moveto
+127.55882 92.12582 lineto stroke
+-5.1197 158.90523 moveto
+(x1) cmr10 9.96265 fshow
+23.2267 158.90523 moveto
+(x2) cmr10 9.96265 fshow
+51.5731 158.90523 moveto
+(x3) cmr10 9.96265 fshow
+79.91951 158.90523 moveto
+(x4) cmr10 9.96265 fshow
+108.26591 158.90523 moveto
+(x5) cmr10 9.96265 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.2 b/5-sortnet/sortnet.2
new file mode 100644 (file)
index 0000000..f021d93
--- /dev/null
@@ -0,0 +1,103 @@
+%!PS
+%%BoundingBox: -6 42 119 166 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmr10 9.96265 9.96265 31:f80000000000000001
+%%EndProlog
+%%Page: 1 1
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [] 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 0 42.5196 moveto
+0 155.90523 lineto stroke
+newpath 28.3464 42.5196 moveto
+28.3464 155.90523 lineto stroke
+newpath 56.69281 42.5196 moveto
+56.69281 155.90523 lineto stroke
+newpath 85.03922 42.5196 moveto
+85.03922 155.90523 lineto stroke
+newpath 113.38562 42.5196 moveto
+113.38562 155.90523 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 0 56.69281 moveto
+28.3464 56.69281 lineto stroke
+newpath 25.57474 55.54472 moveto
+28.3464 56.69281 lineto
+25.57474 57.8409 lineto
+ closepath
+gsave fill grestore stroke
+newpath 0 85.03922 moveto
+28.3464 85.03922 lineto stroke
+newpath 25.57474 83.89113 moveto
+28.3464 85.03922 lineto
+25.57474 86.1873 lineto
+ closepath
+gsave fill grestore stroke
+newpath 0 113.38562 moveto
+28.3464 113.38562 lineto stroke
+newpath 25.57474 112.23753 moveto
+28.3464 113.38562 lineto
+25.57474 114.5337 lineto
+ closepath
+gsave fill grestore stroke
+newpath 0 141.73203 moveto
+28.3464 141.73203 lineto stroke
+newpath 25.57474 140.58394 moveto
+28.3464 141.73203 lineto
+25.57474 142.88011 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 70.86601 moveto
+56.69281 70.86601 lineto stroke
+newpath 53.92114 69.71793 moveto
+56.69281 70.86601 lineto
+53.92114 72.0141 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 99.21242 moveto
+56.69281 99.21242 lineto stroke
+newpath 53.92114 98.06433 moveto
+56.69281 99.21242 lineto
+53.92114 100.3605 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 127.55882 moveto
+56.69281 127.55882 lineto stroke
+newpath 53.92114 126.41074 moveto
+56.69281 127.55882 lineto
+53.92114 128.70691 lineto
+ closepath
+gsave fill grestore stroke
+newpath 56.69281 85.03922 moveto
+85.03922 85.03922 lineto stroke
+newpath 82.26755 83.89113 moveto
+85.03922 85.03922 lineto
+82.26755 86.1873 lineto
+ closepath
+gsave fill grestore stroke
+newpath 56.69281 113.38562 moveto
+85.03922 113.38562 lineto stroke
+newpath 82.26755 112.23753 moveto
+85.03922 113.38562 lineto
+82.26755 114.5337 lineto
+ closepath
+gsave fill grestore stroke
+newpath 85.03922 99.21242 moveto
+113.38562 99.21242 lineto stroke
+newpath 110.61395 98.06433 moveto
+113.38562 99.21242 lineto
+110.61395 100.3605 lineto
+ closepath
+gsave fill grestore stroke
+-5.1197 158.90523 moveto
+(x1) cmr10 9.96265 fshow
+23.2267 158.90523 moveto
+(x2) cmr10 9.96265 fshow
+51.5731 158.90523 moveto
+(x3) cmr10 9.96265 fshow
+79.91951 158.90523 moveto
+(x4) cmr10 9.96265 fshow
+108.26591 158.90523 moveto
+(x5) cmr10 9.96265 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.3 b/5-sortnet/sortnet.3
new file mode 100644 (file)
index 0000000..1f731dc
--- /dev/null
@@ -0,0 +1,107 @@
+%!PS
+%%BoundingBox: -6 -1 295 95 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmmi10 9.96265 9.96265 3a:8000000000000002
+%*Font: cmr7 6.97385 6.97385 30:e
+%*Font: cmmi7 6.97385 6.97385 6e:8
+%*Font: cmsy7 6.97385 6.97385 00:8
+%%EndProlog
+%%Page: 1 1
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [] 0 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 0 0 moveto
+0 85.03922 lineto stroke
+newpath 28.3464 0 moveto
+28.3464 85.03922 lineto stroke
+newpath 56.69281 0 moveto
+56.69281 85.03922 lineto stroke
+newpath 85.03922 0 moveto
+85.03922 85.03922 lineto stroke
+newpath 113.38562 0 moveto
+113.38562 85.03922 lineto stroke
+newpath 141.73203 0 moveto
+141.73203 85.03922 lineto stroke
+newpath 170.07843 0 moveto
+170.07843 85.03922 lineto stroke
+newpath 198.42484 0 moveto
+198.42484 85.03922 lineto stroke
+newpath 226.77124 0 moveto
+226.77124 85.03922 lineto stroke
+newpath 255.11765 0 moveto
+255.11765 85.03922 lineto stroke
+newpath 283.46405 0 moveto
+283.46405 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 0 70.86601 moveto
+141.73203 70.86601 lineto stroke
+newpath 138.96078 69.7181 moveto
+141.73203 70.86601 lineto
+138.96078 72.01393 lineto
+ closepath
+gsave fill grestore stroke
+newpath 28.3464 56.69281 moveto
+170.07843 56.69281 lineto stroke
+newpath 167.30719 55.54489 moveto
+170.07843 56.69281 lineto
+167.30719 57.84073 lineto
+ closepath
+gsave fill grestore stroke
+newpath 56.69281 42.5196 moveto
+198.42484 42.5196 lineto stroke
+newpath 195.6536 41.37169 moveto
+198.42484 42.5196 lineto
+195.6536 43.66753 lineto
+ closepath
+gsave fill grestore stroke
+newpath 85.03922 28.3464 moveto
+226.77124 28.3464 lineto stroke
+newpath 224 27.19849 moveto
+226.77124 28.3464 lineto
+224 29.49432 lineto
+ closepath
+gsave fill grestore stroke
+newpath 113.38562 14.1732 moveto
+255.11765 14.1732 lineto stroke
+newpath 252.3464 13.02528 moveto
+255.11765 14.1732 lineto
+252.3464 15.32112 lineto
+ closepath
+gsave fill grestore stroke
+-5.08165 89.53363 moveto
+(x) cmmi10 9.96265 fshow
+0.61224 88.03923 moveto
+(0) cmr7 6.97385 fshow
+23.26476 89.53363 moveto
+(x) cmmi10 9.96265 fshow
+28.95865 88.03923 moveto
+(1) cmr7 6.97385 fshow
+51.61116 89.53363 moveto
+(x) cmmi10 9.96265 fshow
+57.30505 88.03923 moveto
+(2) cmr7 6.97385 fshow
+135.09032 88.03922 moveto
+(:) cmmi10 9.96265 fshow
+139.51811 88.03922 moveto
+(:) cmmi10 9.96265 fshow
+143.94592 88.03922 moveto
+(:) cmmi10 9.96265 fshow
+244.46024 90.36383 moveto
+(x) cmmi10 9.96265 fshow
+250.15413 88.86943 moveto
+(n) cmmi7 6.97385 fshow
+255.07904 88.86943 moveto
+(\000) cmsy7 6.97385 fshow
+261.30563 88.86943 moveto
+(2) cmr7 6.97385 fshow
+272.80664 90.36383 moveto
+(x) cmmi10 9.96265 fshow
+278.50053 88.86943 moveto
+(n) cmmi7 6.97385 fshow
+283.42545 88.86943 moveto
+(\000) cmsy7 6.97385 fshow
+289.65204 88.86943 moveto
+(1) cmr7 6.97385 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.4 b/5-sortnet/sortnet.4
new file mode 100644 (file)
index 0000000..3b51be5
--- /dev/null
@@ -0,0 +1,182 @@
+%!PS
+%%BoundingBox: -1 -1 213 100 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinejoin 10 setmiterlimit
+newpath 0 14.1732 moveto
+212.59804 14.1732 lineto
+212.59804 28.3464 lineto
+0 28.3464 lineto
+ closepath stroke
+newpath 0 42.5196 moveto
+99.21242 42.5196 lineto
+99.21242 56.69281 lineto
+0 56.69281 lineto
+ closepath stroke
+newpath 113.38562 42.5196 moveto
+212.59804 42.5196 lineto
+212.59804 56.69281 lineto
+113.38562 56.69281 lineto
+ closepath stroke
+newpath 0 70.86601 moveto
+42.5196 70.86601 lineto
+42.5196 85.03922 lineto
+0 85.03922 lineto
+ closepath stroke
+newpath 56.69281 70.86601 moveto
+99.21242 70.86601 lineto
+99.21242 85.03922 lineto
+56.69281 85.03922 lineto
+ closepath stroke
+newpath 113.38562 70.86601 moveto
+155.90523 70.86601 lineto
+155.90523 85.03922 lineto
+113.38562 85.03922 lineto
+ closepath stroke
+newpath 170.07843 70.86601 moveto
+212.59804 70.86601 lineto
+212.59804 85.03922 lineto
+170.07843 85.03922 lineto
+ closepath stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ 1 setlinecap
+newpath 14.1732 99.21242 moveto
+14.1732 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 13.02512 87.81088 moveto
+14.1732 85.03922 lineto
+15.32129 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 28.3464 99.21242 moveto
+28.3464 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 27.19832 87.81088 moveto
+28.3464 85.03922 lineto
+29.49449 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 70.86601 99.21242 moveto
+70.86601 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 69.71793 87.81088 moveto
+70.86601 85.03922 lineto
+72.0141 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 85.03922 99.21242 moveto
+85.03922 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 83.89113 87.81088 moveto
+85.03922 85.03922 lineto
+86.1873 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 127.55882 99.21242 moveto
+127.55882 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 126.41074 87.81088 moveto
+127.55882 85.03922 lineto
+128.70691 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 141.73203 99.21242 moveto
+141.73203 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 140.58394 87.81088 moveto
+141.73203 85.03922 lineto
+142.88011 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 184.25163 99.21242 moveto
+184.25163 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 183.10355 87.81088 moveto
+184.25163 85.03922 lineto
+185.39972 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 198.42484 99.21242 moveto
+198.42484 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 197.27675 87.81088 moveto
+198.42484 85.03922 lineto
+199.57292 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 21.25981 70.86601 moveto
+21.25981 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 20.11172 59.46448 moveto
+21.25981 56.69281 lineto
+22.4079 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 77.95262 70.86601 moveto
+77.95262 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 76.80453 59.46448 moveto
+77.95262 56.69281 lineto
+79.10071 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 134.64543 70.86601 moveto
+134.64543 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 133.49734 59.46448 moveto
+134.64543 56.69281 lineto
+135.79352 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 191.33824 70.86601 moveto
+191.33824 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 190.19016 59.46448 moveto
+191.33824 56.69281 lineto
+192.48633 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 49.60622 42.5196 moveto
+49.60622 28.3464 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 48.45813 31.11807 moveto
+49.60622 28.3464 lineto
+50.7543 31.11807 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 162.99184 42.5196 moveto
+162.99184 28.3464 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 161.84375 31.11807 moveto
+162.99184 28.3464 lineto
+164.13992 31.11807 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 106.29903 14.1732 moveto
+106.29903 0 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 105.15094 2.77167 moveto
+106.29903 0 lineto
+107.44711 2.77167 lineto
+ closepath
+gsave fill grestore stroke
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.5 b/5-sortnet/sortnet.5
new file mode 100644 (file)
index 0000000..7e801db
--- /dev/null
@@ -0,0 +1,169 @@
+%!PS
+%%BoundingBox: -1 28 213 114 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmmi10 9.96265 9.96265 53:8000001
+%*Font: cmmi7 6.97385 6.97385 6e:8
+%*Font: cmmi5 4.98132 4.98132 6e:8
+%*Font: cmr5 4.98132 4.98132 32:a
+%%EndProlog
+%%Page: 1 1
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinejoin 10 setmiterlimit
+newpath 0 99.21242 moveto
+212.59804 99.21242 lineto
+212.59804 85.03922 lineto
+0 85.03922 lineto
+ closepath stroke
+newpath 0 70.86601 moveto
+99.21242 70.86601 lineto
+99.21242 56.69281 lineto
+0 56.69281 lineto
+ closepath stroke
+newpath 113.38562 70.86601 moveto
+212.59804 70.86601 lineto
+212.59804 56.69281 lineto
+113.38562 56.69281 lineto
+ closepath stroke
+newpath 0 42.5196 moveto
+42.5196 42.5196 lineto
+42.5196 28.3464 lineto
+0 28.3464 lineto
+ closepath stroke
+newpath 56.69281 42.5196 moveto
+99.21242 42.5196 lineto
+99.21242 28.3464 lineto
+56.69281 28.3464 lineto
+ closepath stroke
+newpath 113.38562 42.5196 moveto
+155.90523 42.5196 lineto
+155.90523 28.3464 lineto
+113.38562 28.3464 lineto
+ closepath stroke
+newpath 170.07843 42.5196 moveto
+212.59804 42.5196 lineto
+212.59804 28.3464 lineto
+170.07843 28.3464 lineto
+ closepath stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ 1 setlinecap
+newpath 106.29903 113.38562 moveto
+106.29903 99.21242 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 105.15094 101.98409 moveto
+106.29903 99.21242 lineto
+107.44711 101.98409 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 21.25981 56.69281 moveto
+21.25981 42.5196 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 20.11172 45.29128 moveto
+21.25981 42.5196 lineto
+22.4079 45.29128 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 77.95262 56.69281 moveto
+77.95262 42.5196 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 76.80453 45.29128 moveto
+77.95262 42.5196 lineto
+79.10071 45.29128 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 134.64543 56.69281 moveto
+134.64543 42.5196 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 133.49734 45.29128 moveto
+134.64543 42.5196 lineto
+135.79352 45.29128 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 191.33824 56.69281 moveto
+191.33824 42.5196 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 190.19016 45.29128 moveto
+191.33824 42.5196 lineto
+192.48633 45.29128 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 49.60622 85.03922 moveto
+49.60622 70.86601 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 48.45813 73.63768 moveto
+49.60622 70.86601 lineto
+50.7543 73.63768 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 162.99184 85.03922 moveto
+162.99184 70.86601 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 161.84375 73.63768 moveto
+162.99184 70.86601 lineto
+164.13992 73.63768 lineto
+ closepath
+gsave fill grestore stroke
+98.21913 106.99612 moveto
+(n) cmmi10 9.96265 fshow
+100.53302 89.40462 moveto
+(S) cmmi10 9.96265 fshow
+106.64201 87.91022 moveto
+(n) cmmi7 6.97385 fshow
+42.91336 61.05821 moveto
+(S) cmmi10 9.96265 fshow
+50.21786 62.24112 moveto
+(n) cmmi5 4.98132 fshow
+ 0 setlinecap
+newpath 50.21786 61.30731 moveto
+54.60545 61.30731 lineto stroke
+50.71666 57.16331 moveto
+(2) cmr5 4.98132 fshow
+156.29898 61.05821 moveto
+(S) cmmi10 9.96265 fshow
+163.60349 62.24112 moveto
+(n) cmmi5 4.98132 fshow
+newpath 163.60349 61.30731 moveto
+167.99107 61.30731 lineto stroke
+164.10228 57.16331 moveto
+(2) cmr5 4.98132 fshow
+14.56696 32.7118 moveto
+(S) cmmi10 9.96265 fshow
+21.87146 33.89471 moveto
+(n) cmmi5 4.98132 fshow
+newpath 21.87146 32.9609 moveto
+26.25905 32.9609 lineto stroke
+22.37025 28.81691 moveto
+(4) cmr5 4.98132 fshow
+71.25977 32.7118 moveto
+(S) cmmi10 9.96265 fshow
+78.56427 33.89471 moveto
+(n) cmmi5 4.98132 fshow
+newpath 78.56427 32.9609 moveto
+82.95186 32.9609 lineto stroke
+79.06306 28.81691 moveto
+(4) cmr5 4.98132 fshow
+127.95258 32.7118 moveto
+(S) cmmi10 9.96265 fshow
+135.25708 33.89471 moveto
+(n) cmmi5 4.98132 fshow
+newpath 135.25708 32.9609 moveto
+139.64467 32.9609 lineto stroke
+135.75587 28.81691 moveto
+(4) cmr5 4.98132 fshow
+184.64539 32.7118 moveto
+(S) cmmi10 9.96265 fshow
+191.94989 33.89471 moveto
+(n) cmmi5 4.98132 fshow
+newpath 191.94989 32.9609 moveto
+196.33748 32.9609 lineto stroke
+192.44868 28.81691 moveto
+(4) cmr5 4.98132 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.6 b/5-sortnet/sortnet.6
new file mode 100644 (file)
index 0000000..901d4d4
--- /dev/null
@@ -0,0 +1,212 @@
+%!PS
+%%BoundingBox: -1 -1 213 100 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmmi10 9.96265 9.96265 4d:8
+%*Font: cmr7 6.97385 6.97385 32:a2
+%%EndProlog
+%%Page: 1 1
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinejoin 10 setmiterlimit
+newpath 0 14.1732 moveto
+212.59804 14.1732 lineto
+212.59804 28.3464 lineto
+0 28.3464 lineto
+ closepath stroke
+newpath 0 42.5196 moveto
+99.21242 42.5196 lineto
+99.21242 56.69281 lineto
+0 56.69281 lineto
+ closepath stroke
+newpath 113.38562 42.5196 moveto
+212.59804 42.5196 lineto
+212.59804 56.69281 lineto
+113.38562 56.69281 lineto
+ closepath stroke
+newpath 0 70.86601 moveto
+42.5196 70.86601 lineto
+42.5196 85.03922 lineto
+0 85.03922 lineto
+ closepath stroke
+newpath 56.69281 70.86601 moveto
+99.21242 70.86601 lineto
+99.21242 85.03922 lineto
+56.69281 85.03922 lineto
+ closepath stroke
+newpath 113.38562 70.86601 moveto
+155.90523 70.86601 lineto
+155.90523 85.03922 lineto
+113.38562 85.03922 lineto
+ closepath stroke
+newpath 170.07843 70.86601 moveto
+212.59804 70.86601 lineto
+212.59804 85.03922 lineto
+170.07843 85.03922 lineto
+ closepath stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ 1 setlinecap
+newpath 14.1732 99.21242 moveto
+14.1732 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 13.02512 87.81088 moveto
+14.1732 85.03922 lineto
+15.32129 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 28.3464 99.21242 moveto
+28.3464 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 27.19832 87.81088 moveto
+28.3464 85.03922 lineto
+29.49449 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 70.86601 99.21242 moveto
+70.86601 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 69.71793 87.81088 moveto
+70.86601 85.03922 lineto
+72.0141 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 85.03922 99.21242 moveto
+85.03922 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 83.89113 87.81088 moveto
+85.03922 85.03922 lineto
+86.1873 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 127.55882 99.21242 moveto
+127.55882 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 126.41074 87.81088 moveto
+127.55882 85.03922 lineto
+128.70691 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 141.73203 99.21242 moveto
+141.73203 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 140.58394 87.81088 moveto
+141.73203 85.03922 lineto
+142.88011 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 184.25163 99.21242 moveto
+184.25163 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 183.10355 87.81088 moveto
+184.25163 85.03922 lineto
+185.39972 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 198.42484 99.21242 moveto
+198.42484 85.03922 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 197.27675 87.81088 moveto
+198.42484 85.03922 lineto
+199.57292 87.81088 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 21.25981 70.86601 moveto
+21.25981 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 20.11172 59.46448 moveto
+21.25981 56.69281 lineto
+22.4079 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 77.95262 70.86601 moveto
+77.95262 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 76.80453 59.46448 moveto
+77.95262 56.69281 lineto
+79.10071 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 134.64543 70.86601 moveto
+134.64543 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 133.49734 59.46448 moveto
+134.64543 56.69281 lineto
+135.79352 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 191.33824 70.86601 moveto
+191.33824 56.69281 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 190.19016 59.46448 moveto
+191.33824 56.69281 lineto
+192.48633 59.46448 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 49.60622 42.5196 moveto
+49.60622 28.3464 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 48.45813 31.11807 moveto
+49.60622 28.3464 lineto
+50.7543 31.11807 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 162.99184 42.5196 moveto
+162.99184 28.3464 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 161.84375 31.11807 moveto
+162.99184 28.3464 lineto
+164.13992 31.11807 lineto
+ closepath
+gsave fill grestore stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 106.29903 14.1732 moveto
+106.29903 0 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+newpath 105.15094 2.77167 moveto
+106.29903 0 lineto
+107.44711 2.77167 lineto
+ closepath
+gsave fill grestore stroke
+99.23177 18.66762 moveto
+(M) cmmi10 9.96265 fshow
+108.89697 17.17322 moveto
+(8) cmr7 6.97385 fshow
+42.53896 47.01402 moveto
+(M) cmmi10 9.96265 fshow
+52.20416 45.51962 moveto
+(4) cmr7 6.97385 fshow
+155.92458 47.01402 moveto
+(M) cmmi10 9.96265 fshow
+165.58978 45.51962 moveto
+(4) cmr7 6.97385 fshow
+14.19255 75.36043 moveto
+(M) cmmi10 9.96265 fshow
+23.85776 73.86603 moveto
+(2) cmr7 6.97385 fshow
+70.88536 75.36043 moveto
+(M) cmmi10 9.96265 fshow
+80.55057 73.86603 moveto
+(2) cmr7 6.97385 fshow
+127.57817 75.36043 moveto
+(M) cmmi10 9.96265 fshow
+137.24338 73.86603 moveto
+(2) cmr7 6.97385 fshow
+184.27098 75.36043 moveto
+(M) cmmi10 9.96265 fshow
+193.93619 73.86603 moveto
+(2) cmr7 6.97385 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.7 b/5-sortnet/sortnet.7
new file mode 100644 (file)
index 0000000..9b52ee9
--- /dev/null
@@ -0,0 +1,106 @@
+%!PS
+%%BoundingBox: 9 5 191 130 
+%%Creator: MetaPost
+%%CreationDate: 2007.12.14:2120
+%%Pages: 1
+%*Font: cmr10 9.96265 9.96265 13:80000086000000000002247de1
+%*Font: cmmi10 9.96265 9.96265 6b:9
+%*Font: cmr7 6.97385 6.97385 32:8
+%*Font: cmmi7 6.97385 6.97385 6e:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%%EndProlog
+%%Page: 1 1
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 19.84248 119.0549 moveto
+19.84248 39.68497 lineto
+178.58235 39.68497 lineto
+178.58235 119.0549 lineto stroke
+newpath 19.84248 59.52745 moveto
+69.4487 119.0549 lineto
+178.58235 79.36993 lineto stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash
+newpath 99.21242 19.84248 moveto
+99.21242 128.97615 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+ [0 3.49998 ] 1.74998 setdash
+newpath 130.36052 96.9054 moveto
+148.81863 119.0549 lineto stroke
+newpath 148.81863 119.0549 moveto
+178.58235 108.23186 lineto stroke
+newpath 50.99059 96.9054 moveto
+99.21242 79.36993 lineto stroke
+ 0.3985 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash
+newpath 50.99059 96.9054 moveto
+50.99059 39.68497 lineto stroke
+newpath 130.36052 96.9054 moveto
+130.36052 39.68497 lineto stroke
+ 0 0.3985 dtransform truncate idtransform setlinewidth pop
+ [0 3.49998 ] 1.74998 setdash
+newpath 9.92125 9.92125 moveto
+29.76373 9.92125 lineto stroke
+newpath 52.48499 96.9054 moveto
+52.48499 97.30173 52.32755 97.68184 52.04729 97.9621 curveto
+51.76703 98.24236 51.38692 98.3998 50.99059 98.3998 curveto
+50.59425 98.3998 50.21414 98.24236 49.93388 97.9621 curveto
+49.65363 97.68184 49.49619 97.30173 49.49619 96.9054 curveto
+49.49619 96.50906 49.65363 96.12895 49.93388 95.8487 curveto
+50.21414 95.56844 50.59425 95.411 50.99059 95.411 curveto
+51.38692 95.411 51.76703 95.56844 52.04729 95.8487 curveto
+52.32755 96.12895 52.48499 96.50906 52.48499 96.9054 curveto closepath fill
+newpath 131.85492 96.9054 moveto
+131.85492 97.30173 131.69748 97.68184 131.41722 97.9621 curveto
+131.13696 98.24236 130.75685 98.3998 130.36052 98.3998 curveto
+129.96419 98.3998 129.58408 98.24236 129.30382 97.9621 curveto
+129.02356 97.68184 128.86612 97.30173 128.86612 96.9054 curveto
+128.86612 96.50906 129.02356 96.12895 129.30382 95.8487 curveto
+129.58408 95.56844 129.96419 95.411 130.36052 95.411 curveto
+130.75685 95.411 131.13696 95.56844 131.41722 95.8487 curveto
+131.69748 96.12895 131.85492 96.50906 131.85492 96.9054 curveto closepath fill
+17.35184 28.21677 moveto
+(0) cmr10 9.96265 fshow
+48.24048 29.76646 moveto
+(k) cmmi10 9.96265 fshow
+73.83423 33.03938 moveto
+(n) cmmi7 6.97385 fshow
+ [] 0 setdash 0 setlinecap
+newpath 73.83423 31.60748 moveto
+78.75914 31.60748 lineto stroke
+74.31104 25.68127 moveto
+(2) cmr7 6.97385 fshow
+82.16853 29.11678 moveto
+(\000) cmsy10 9.96265 fshow
+92.13113 29.11678 moveto
+(1) cmr10 9.96265 fshow
+117.86421 28.21677 moveto
+(k) cmmi10 9.96265 fshow
+125.57831 28.21677 moveto
+(+) cmr10 9.96265 fshow
+136.7364 32.13937 moveto
+(n) cmmi7 6.97385 fshow
+newpath 136.7364 30.70747 moveto
+141.66132 30.70747 lineto stroke
+137.21321 24.78127 moveto
+(2) cmr7 6.97385 fshow
+167.0135 28.21677 moveto
+(n) cmmi10 9.96265 fshow
+175.2073 28.21677 moveto
+(\000) cmsy10 9.96265 fshow
+185.1699 28.21677 moveto
+(1) cmr10 9.96265 fshow
+32.76373 7.43059 moveto
+(p) cmr10 9.96265 fshow
+38.57533 7.43059 moveto
+(osloupnost) cmr10 9.96265 fshow
+87.94583 7.43059 moveto
+(prohozen\023) cmr10 9.96265 fshow
+127.27063 7.43059 moveto
+(a) cmr10 9.96265 fshow
+135.57283 7.43059 moveto
+(separ\023) cmr10 9.96265 fshow
+158.34863 7.43059 moveto
+(atorem) cmr10 9.96265 fshow
+showpage
+%%EOF
diff --git a/5-sortnet/sortnet.mp b/5-sortnet/sortnet.mp
new file mode 100644 (file)
index 0000000..f28a753
--- /dev/null
@@ -0,0 +1,657 @@
+%defaultfont:="csr12";
+%verbatimtex \input twelvecs etex
+u:=1 ;
+ahlength:=u*3;
+
+beginfig(0);
+v:=u*7mm;
+
+z12=(1v,1v);
+z13=(2v,1v);
+z21=(0v,2v);
+z22=(1v,2v);
+z23=(2v,2v);
+z24=(3v,2v);
+z31=(0v,4v);
+z32=(1v,4v);
+z33=(2v,4v);
+z34=(3v,4v);
+z42=(1v,5v);
+z43=(2v,5v);
+
+pickup pencircle scaled 0.4pt;
+draw(z21--z22--z23--z24--z34--z33--z32--z31--z21);
+drawarrow(z22--z12);
+drawarrow(z23--z13);
+drawarrow(z42--z32);
+drawarrow(z43--z33);
+
+label.bot(btex \strut a etex,z32);
+label.bot(btex \strut b etex,z33);
+label.top(btex min etex,z22);
+label.top(btex max etex,z23);
+
+
+endfig;
+
+beginfig(1);
+v:=u*5mm;
+z10=(0v,0v);
+z20=(2v,0v);
+z30=(4v,0v);
+z40=(6v,0v);
+z50=(8v,0v);
+
+z11=(0v,1v);
+z12=(0v,2v);
+z13=(0v,3v);
+z14=(0v,4v);
+z15=(0v,5v);
+z16=(0v,6v);
+z17=(0v,7v);
+z18=(0v,8v);
+z19=(0v,9v);
+z110=(0v,10v);
+
+z21=(2v,1v);
+z22=(2v,2v);
+z23=(2v,3v);
+z24=(2v,4v);
+z25=(2v,5v);
+z26=(2v,6v);
+z27=(2v,7v);
+z28=(2v,8v);
+z29=(2v,9v);
+z210=(2v,10v);
+
+z31=(4v,1v);
+z32=(4v,2v);
+z33=(4v,3v);
+z34=(4v,4v);
+z35=(4v,5v);
+z36=(4v,6v);
+z37=(4v,7v);
+z38=(4v,8v);
+z39=(4v,9v);
+z310=(4v,10v);
+
+z41=(6v,1v);
+z42=(6v,2v);
+z43=(6v,3v);
+z44=(6v,4v);
+z45=(6v,5v);
+z46=(6v,6v);
+z47=(6v,7v);
+z48=(6v,8v);
+z49=(6v,9v);
+z410=(6v,10v);
+
+z51=(8v,1v);
+z52=(8v,2v);
+z53=(8v,3v);
+z54=(8v,4v);
+z55=(8v,5v);
+z56=(8v,6v);
+z57=(8v,7v);
+z58=(8v,8v);
+z59=(8v,9v);
+z510=(8v,10v);
+
+z111=(0v,11v);
+z211=(2v,11v);
+z311=(4v,11v);
+z411=(6v,11v);
+z511=(8v,11v);
+
+z1015=(-1v,1.5v);
+z1615=(9v,1.5v);
+z1035=(-1v,3.5v);
+z1635=(9v,3.5v);
+z1065=(-1v,6.5v);
+z1665=(9v,6.5v);
+
+pickup pencircle scaled 0.4pt;
+draw(z10--z111);
+draw(z20--z211);
+draw(z30--z311);
+draw(z40--z411);
+draw(z50--z511);
+drawarrow(z11--z21);
+drawarrow(z13--z23);
+drawarrow(z16--z26);
+drawarrow(z110--z210);
+drawarrow(z22--z32);
+drawarrow(z25--z35);
+drawarrow(z29--z39);
+drawarrow(z34--z44);
+drawarrow(z38--z48);
+drawarrow(z47--z57);
+
+pickup pencircle scaled 0.7pt;
+draw(z1015--z1615) dashed withdots scaled 0.7;
+draw(z1035--z1635) dashed withdots scaled 0.7;
+draw(z1065--z1665) dashed withdots scaled 0.7;
+
+label.top(btex x1 etex,z111);
+label.top(btex x2 etex,z211);
+label.top(btex x3 etex,z311);
+label.top(btex x4 etex,z411);
+label.top(btex x5 etex,z511);
+
+endfig;
+
+beginfig(2);
+v:=u*5mm;
+z13=(0v,3v);
+z23=(2v,3v);
+z33=(4v,3v);
+z43=(6v,3v);
+z53=(8v,3v);
+
+z14=(0v,4v);
+z15=(0v,5v);
+z16=(0v,6v);
+z17=(0v,7v);
+z18=(0v,8v);
+z19=(0v,9v);
+z110=(0v,10v);
+
+z24=(2v,4v);
+z25=(2v,5v);
+z26=(2v,6v);
+z27=(2v,7v);
+z28=(2v,8v);
+z29=(2v,9v);
+z210=(2v,10v);
+
+z34=(4v,4v);
+z35=(4v,5v);
+z36=(4v,6v);
+z37=(4v,7v);
+z38=(4v,8v);
+z39=(4v,9v);
+z310=(4v,10v);
+
+z44=(6v,4v);
+z45=(6v,5v);
+z46=(6v,6v);
+z47=(6v,7v);
+z48=(6v,8v);
+z49=(6v,9v);
+z410=(6v,10v);
+
+z54=(8v,4v);
+z55=(8v,5v);
+z56=(8v,6v);
+z57=(8v,7v);
+z58=(8v,8v);
+z59=(8v,9v);
+z510=(8v,10v);
+
+z111=(0v,11v);
+z211=(2v,11v);
+z311=(4v,11v);
+z411=(6v,11v);
+z511=(8v,11v);
+
+pickup pencircle scaled 0.4pt;
+draw(z13--z111);
+draw(z23--z211);
+draw(z33--z311);
+draw(z43--z411);
+draw(z53--z511);
+drawarrow(z14--z24);
+drawarrow(z16--z26);
+drawarrow(z18--z28);
+drawarrow(z110--z210);
+drawarrow(z25--z35);
+drawarrow(z27--z37);
+drawarrow(z29--z39);
+drawarrow(z36--z46);
+drawarrow(z38--z48);
+drawarrow(z47--z57);
+
+label.top(btex x1 etex,z111);
+label.top(btex x2 etex,z211);
+label.top(btex x3 etex,z311);
+label.top(btex x4 etex,z411);
+label.top(btex x5 etex,z511);
+
+endfig;
+
+
+beginfig(3);
+v:=u*5mm;
+
+z10=(0v,0v);
+z15=(0v,5v);
+z16=(0v,6v);
+
+z20=(2v,0v);
+z24=(2v,4v);
+z26=(2v,6v);
+
+z30=(4v,0v);
+z33=(4v,3v);
+z36=(4v,6v);
+
+z40=(6v,0v);
+z42=(6v,2v);
+z46=(6v,6v);
+
+z50=(8v,0v);
+z51=(8v,1v);
+z56=(8v,6v);
+
+z60=(10v,0v);
+z65=(10v,5v);
+z66=(10v,6v);
+
+z70=(12v,0v);
+z74=(12v,4v);
+z76=(12v,6v);
+
+z80=(14v,0v);
+z83=(14v,3v);
+z86=(14v,6v);
+
+z90=(16v,0v);
+z92=(16v,2v);
+z96=(16v,6v);
+
+z100=(18v,0v);
+z101=(18v,1v);
+z106=(18v,6v);
+
+z110=(20v,0v);
+z116=(20v,6v);
+
+
+pickup pencircle scaled 0.4pt;
+draw(z10--z16);
+draw(z20--z26);
+draw(z30--z36);
+draw(z40--z46);
+draw(z50--z56);
+draw(z60--z66);
+draw(z70--z76);
+draw(z80--z86);
+draw(z90--z96);
+draw(z100--z106);
+draw(z110--z116);
+drawarrow(z15--z65);
+drawarrow(z24--z74);
+drawarrow(z33--z83);
+drawarrow(z42--z92);
+drawarrow(z51--z101);
+
+label.top(btex $x_0$ etex,z16);
+label.top(btex $x_1$ etex,z26);
+label.top(btex $x_2$ etex,z36);
+label.top(btex \dots etex,z66);
+label.top(btex $x_{n-2}$ etex,z106);
+label.top(btex $x_{n-1}$ etex,z116);
+
+endfig;
+
+
+
+beginfig(4);
+v:=u*5mm;
+
+z1075=(7.5v,0v);
+
+z10=(0v,1v);
+z175=(7.5v,1v);
+z115=(15v,1v);
+
+z20=(0v,2v);
+z235=(3.5v,2v);
+z211=(11.5v,2v);
+z215=(15v,2v);
+
+z30=(0v,3v);
+z335=(3.5v,3v);
+z37=(7v,3v);
+z38=(8v,3v);
+z311=(11.5v,3v);
+z315=(15v,3v);
+
+z40=(0v,4v);
+z415=(1.5v,4v);
+z455=(5.5v,4v);
+z47=(7v,4v);
+z48=(8v,4v);
+z495=(9.5v,4v);
+z413=(13.5v,4v);
+z416=(15v,4v);
+
+z50=(0v,5v);
+z515=(1.5v,5v);
+z53=(3v,5v);
+z54=(4v,5v);
+z555=(5.5v,5v);
+z57=(7v,5v);
+z58=(8v,5v);
+z595=(9.5v,5v);
+z511=(11v,5v);
+z512=(12v,5v);
+z513=(13.5v,5v);
+z516=(15v,5v);
+
+z60=(0v,6v);
+z61=(1v,6v);
+z62=(2v,6v);
+z63=(3v,6v);
+z64=(4v,6v);
+z65=(5v,6v);
+z66=(6v,6v);
+z67=(7v,6v);
+z68=(8v,6v);
+z69=(9v,6v);
+z610=(10v,6v);
+z611=(11v,6v);
+z612=(12v,6v);
+z613=(13v,6v);
+z614=(14v,6v);
+z615=(15v,6v);
+
+z71=(1v,7v);
+z72=(2v,7v);
+z75=(5v,7v);
+z76=(6v,7v);
+z79=(9v,7v);
+z710=(10v,7v);
+z713=(13v,7v);
+z714=(14v,7v);
+
+
+
+
+pickup pencircle scaled 0.4pt;
+draw(z10--z115--z215--z20--cycle);
+draw(z30--z37--z47--z40--cycle);
+draw(z38--z315--z416--z48--cycle);
+draw(z50--z53--z63--z60--cycle);
+draw(z54--z57--z67--z64--cycle);
+draw(z58--z511--z611--z68--cycle);
+draw(z512--z516--z615--z612--cycle);
+drawarrow(z71--z61);
+drawarrow(z72--z62);
+drawarrow(z75--z65);
+drawarrow(z76--z66);
+drawarrow(z79--z69);
+drawarrow(z710--z610);
+drawarrow(z713--z613);
+drawarrow(z714--z614);
+drawarrow(z515--z415);
+drawarrow(z555--z455);
+drawarrow(z595--z495);
+drawarrow(z513--z413);
+drawarrow(z335--z235);
+drawarrow(z311--z211);
+drawarrow(z175--z1075);
+
+endfig;
+
+
+beginfig(5);
+v:=u*5mm;
+
+z075=(7.5v,8v);
+
+z10=(0v,7v);
+z175=(7.5v,7v);
+z115=(15v,7v);
+
+z20=(0v,6v);
+z235=(3.5v,6v);
+z211=(11.5v,6v);
+z215=(15v,6v);
+
+z30=(0v,5v);
+z335=(3.5v,5v);
+z37=(7v,5v);
+z38=(8v,5v);
+z311=(11.5v,5v);
+z315=(15v,5v);
+
+z40=(0v,4v);
+z415=(1.5v,4v);
+z455=(5.5v,4v);
+z47=(7v,4v);
+z48=(8v,4v);
+z495=(9.5v,4v);
+z413=(13.5v,4v);
+z416=(15v,4v);
+
+z50=(0v,3v);
+z515=(1.5v,3v);
+z53=(3v,3v);
+z54=(4v,3v);
+z555=(5.5v,3v);
+z57=(7v,3v);
+z58=(8v,3v);
+z595=(9.5v,3v);
+z511=(11v,3v);
+z512=(12v,3v);
+z513=(13.5v,3v);
+z516=(15v,3v);
+
+z60=(0v,2v);
+z61=(1v,2v);
+z62=(2v,2v);
+z63=(3v,2v);
+z64=(4v,2v);
+z65=(5v,2v);
+z66=(6v,2v);
+z67=(7v,2v);
+z68=(8v,2v);
+z69=(9v,2v);
+z610=(10v,2v);
+z611=(11v,2v);
+z612=(12v,2v);
+z613=(13v,2v);
+z614=(14v,2v);
+z615=(15v,2v);
+
+
+pickup pencircle scaled 0.4pt;
+draw(z10--z115--z215--z20--cycle);
+draw(z30--z37--z47--z40--cycle);
+draw(z38--z315--z416--z48--cycle);
+draw(z50--z53--z63--z60--cycle);
+draw(z54--z57--z67--z64--cycle);
+draw(z58--z511--z611--z68--cycle);
+draw(z512--z516--z615--z612--cycle);
+drawarrow(z075--z175);
+drawarrow(z415--z515);
+drawarrow(z455--z555);
+drawarrow(z495--z595);
+drawarrow(z413--z513);
+drawarrow(z235--z335);
+drawarrow(z211--z311);
+
+label.llft(btex $n$ etex,z075);
+label.bot(btex $S_n$ etex,z175);
+label.bot(btex $S_{n\over 2}$ etex,z335);
+label.bot(btex $S_{n\over 2}$ etex,z311);
+label.bot(btex $S_{n\over 4}$ etex,z515);
+label.bot(btex $S_{n\over 4}$ etex,z555);
+label.bot(btex $S_{n\over 4}$ etex,z595);
+label.bot(btex $S_{n\over 4}$ etex,z513);
+
+endfig;
+
+
+
+beginfig(6);
+v:=u*5mm;
+
+z1075=(7.5v,0v);
+
+z10=(0v,1v);
+z175=(7.5v,1v);
+z115=(15v,1v);
+
+z20=(0v,2v);
+z235=(3.5v,2v);
+z211=(11.5v,2v);
+z215=(15v,2v);
+
+z30=(0v,3v);
+z335=(3.5v,3v);
+z37=(7v,3v);
+z38=(8v,3v);
+z311=(11.5v,3v);
+z315=(15v,3v);
+
+z40=(0v,4v);
+z415=(1.5v,4v);
+z455=(5.5v,4v);
+z47=(7v,4v);
+z48=(8v,4v);
+z495=(9.5v,4v);
+z413=(13.5v,4v);
+z416=(15v,4v);
+
+z50=(0v,5v);
+z515=(1.5v,5v);
+z53=(3v,5v);
+z54=(4v,5v);
+z555=(5.5v,5v);
+z57=(7v,5v);
+z58=(8v,5v);
+z595=(9.5v,5v);
+z511=(11v,5v);
+z512=(12v,5v);
+z513=(13.5v,5v);
+z516=(15v,5v);
+
+z60=(0v,6v);
+z61=(1v,6v);
+z62=(2v,6v);
+z63=(3v,6v);
+z64=(4v,6v);
+z65=(5v,6v);
+z66=(6v,6v);
+z67=(7v,6v);
+z68=(8v,6v);
+z69=(9v,6v);
+z610=(10v,6v);
+z611=(11v,6v);
+z612=(12v,6v);
+z613=(13v,6v);
+z614=(14v,6v);
+z615=(15v,6v);
+
+z71=(1v,7v);
+z72=(2v,7v);
+z75=(5v,7v);
+z76=(6v,7v);
+z79=(9v,7v);
+z710=(10v,7v);
+z713=(13v,7v);
+z714=(14v,7v);
+
+
+
+
+pickup pencircle scaled 0.4pt;
+draw(z10--z115--z215--z20--cycle);
+draw(z30--z37--z47--z40--cycle);
+draw(z38--z315--z416--z48--cycle);
+draw(z50--z53--z63--z60--cycle);
+draw(z54--z57--z67--z64--cycle);
+draw(z58--z511--z611--z68--cycle);
+draw(z512--z516--z615--z612--cycle);
+drawarrow(z71--z61);
+drawarrow(z72--z62);
+drawarrow(z75--z65);
+drawarrow(z76--z66);
+drawarrow(z79--z69);
+drawarrow(z710--z610);
+drawarrow(z713--z613);
+drawarrow(z714--z614);
+drawarrow(z515--z415);
+drawarrow(z555--z455);
+drawarrow(z595--z495);
+drawarrow(z513--z413);
+drawarrow(z335--z235);
+drawarrow(z311--z211);
+drawarrow(z175--z1075);
+
+label.top(btex $M_8$ etex,z175);
+label.top(btex $M_4$ etex,z335);
+label.top(btex $M_4$ etex,z311);
+label.top(btex $M_2$ etex,z515);
+label.top(btex $M_2$ etex,z555);
+label.top(btex $M_2$ etex,z595);
+label.top(btex $M_2$ etex,z513);
+
+endfig;
+
+
+beginfig(7);
+v:=u*7mm;
+
+z12=(1v,2v);
+z13=(1v,3v);
+z16=(1v,6v);
+z356=(3.5v,6v);
+z40=(5v,1v);
+z42=(5v,2v);
+z47=(5v,6.5v);
+z72=(9v,2v);
+z74=(9v,4v);
+z76=(9v,6v);
+
+z100=(0.5v,0.5v);
+z101=(1.5v,0.5v);
+
+z0=whatever[z13,z356];
+z1=whatever[z356,z74];
+z1=z0+4v*right;
+z2=whatever[z12,z72];
+z2=z0+whatever*down;
+z3=whatever[z12,z72];
+z3=z1+whatever*down;
+z4=z356+4v*right;
+z5=whatever[z72,z76];
+z5=whatever[z4,z1+4v*right];
+z6=whatever[z40,z47];
+z6=z74+4v*left;
+
+
+pickup pencircle scaled 0.4pt;
+draw(z16--z12--z72--z76);
+draw(z13--z356--z74);
+draw(z40--z47) dashed evenly;
+draw(z1--z4) dashed withdots scaled 0.7;
+draw(z4--z5) dashed withdots scaled 0.7;
+draw(z0--z6) dashed withdots scaled 0.7;
+draw(z0--z2) dashed evenly;
+draw(z1--z3) dashed evenly;
+
+draw(z100--z101) dashed withdots scaled 0.7;
+
+pickup pencircle scaled 3pt;
+drawdot(z0);
+drawdot(z1);
+
+label.bot(btex \strut 0 etex,z12);
+label.bot(btex $k$ etex,z2);
+label.llft(btex \strut ${n\over 2} - 1$ etex,z42);
+label.bot(btex \strut $k+{n\over 2}$ etex,z3);
+label.bot(btex \strut $n-1$ etex,z72);
+label.rt(btex posloupnost prohozen\'a separ\'atorem etex,z101);
+
+endfig;
+
+
+
+
+
+
+
+end;
index 7b168318dca2d78325db6bd5feefb061704e893c..90bc7ce85132ec4dc3e4944b19b0fb08ece67a33 100644 (file)
@@ -1,5 +1,5 @@
 P=ads2
 P=ads2
-X:=$(shell for a in 1 2 3 4 6 7 ; do echo ../$$a-*/$$a-*.tex ; done)
+X:=$(shell for a in 1 2 3 4 6 7 ; do echo ../$$a-*/$$a-*.tex ; done)
 
 %universe: all ChangeLog
 
 
 %universe: all ChangeLog