From ba8385df7e883beadd6dcd1e7b05e42f660376a5 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 14 Dec 2007 21:23:29 +0100 Subject: [PATCH] Nulta verze kapitoly o tridicich sitich. --- 5-sortnet/5-sortnet.tex | 194 ++++++++++++ 5-sortnet/Makefile | 3 + 5-sortnet/sortnet.0 | 65 ++++ 5-sortnet/sortnet.1 | 111 +++++++ 5-sortnet/sortnet.2 | 103 +++++++ 5-sortnet/sortnet.3 | 107 +++++++ 5-sortnet/sortnet.4 | 182 +++++++++++ 5-sortnet/sortnet.5 | 169 +++++++++++ 5-sortnet/sortnet.6 | 212 +++++++++++++ 5-sortnet/sortnet.7 | 106 +++++++ 5-sortnet/sortnet.mp | 657 ++++++++++++++++++++++++++++++++++++++++ all/Makefile | 2 +- 12 files changed, 1910 insertions(+), 1 deletion(-) create mode 100644 5-sortnet/5-sortnet.tex create mode 100644 5-sortnet/Makefile create mode 100644 5-sortnet/sortnet.0 create mode 100644 5-sortnet/sortnet.1 create mode 100644 5-sortnet/sortnet.2 create mode 100644 5-sortnet/sortnet.3 create mode 100644 5-sortnet/sortnet.4 create mode 100644 5-sortnet/sortnet.5 create mode 100644 5-sortnet/sortnet.6 create mode 100644 5-sortnet/sortnet.7 create mode 100644 5-sortnet/sortnet.mp diff --git a/5-sortnet/5-sortnet.tex b/5-sortnet/5-sortnet.tex new file mode 100644 index 0000000..fb047a1 --- /dev/null +++ b/5-sortnet/5-sortnet.tex @@ -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 index 0000000..99c4a29 --- /dev/null +++ b/5-sortnet/Makefile @@ -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 index 0000000..3dabc76 --- /dev/null +++ b/5-sortnet/sortnet.0 @@ -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 index 0000000..12189a9 --- /dev/null +++ b/5-sortnet/sortnet.1 @@ -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 index 0000000..f021d93 --- /dev/null +++ b/5-sortnet/sortnet.2 @@ -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 index 0000000..1f731dc --- /dev/null +++ b/5-sortnet/sortnet.3 @@ -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 index 0000000..3b51be5 --- /dev/null +++ b/5-sortnet/sortnet.4 @@ -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 index 0000000..7e801db --- /dev/null +++ b/5-sortnet/sortnet.5 @@ -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 index 0000000..901d4d4 --- /dev/null +++ b/5-sortnet/sortnet.6 @@ -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 index 0000000..9b52ee9 --- /dev/null +++ b/5-sortnet/sortnet.7 @@ -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 index 0000000..f28a753 --- /dev/null +++ b/5-sortnet/sortnet.mp @@ -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; diff --git a/all/Makefile b/all/Makefile index 7b16831..90bc7ce 100644 --- a/all/Makefile +++ b/all/Makefile @@ -1,5 +1,5 @@ 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 5 6 7 ; do echo ../$$a-*/$$a-*.tex ; done) %universe: all ChangeLog -- 2.39.2