\input style \chapno=5\subchno=4 \chapnotrue %%438 \htable{tABLICA 1}% {hARAKTERISTIKI OPTIMALXNOGO DEREVA $A_m(n)$, $k_m(n)$ PRI $\alpha=\beta=1$}% {$n=#$\hfill& \hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$& \hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$&\hfill$\,#\,$& \hfill$\,#\,$\hfill&$n=#$\hfill\cr \omit & m=1 & m=2 & m=3 & m=4 & m=5 & m=6 & m=7 & m=8 & m=9 & m=10& m=11& m=12& \hbox{oPISANIE DEREVA}\cr 1 & 0,0& & & & & & & & & & & &- & 1\cr 2 & 6,2& 0,1 & & & & & & & & & & &1:1 & 2\cr 3 & 12,3& 6,1 & 0,1& & & & & & & & & &1:1:1 & 3\cr 4 & 20,4& 12,1 & 6,1& 0,1& & & & & & & & &1:1:1:1 & 4\cr 5 & 30,5& 18,2 & 12,1& 6,1& 0,1& & & & & & & &1:1:1:1:1 & 5\cr 6 & 42,2& 24,3 & 18,1& 12,1& 6,1& 0,1& & & & & & & 3:3 & 6\cr 7 & 52,3& 32,3 & 24,1& 18,1& 12,1& 6,1& 0,1& & & & & & 1:3:3 & 7\cr 8 & 62,3& 40,4 & 30,2& 24,1& 18,1& 12,1& 6,1& 0,1& & & & & 2:3:3 & 8\cr 9 & 72,3& 50,4 & 36,3& 30,1& 24,1& 18,1& 12,1& 6,1& 0,1& & & & 3:3:3 & 9\cr 10& 84,3& 60,5 & 44,3& 36,1& 30,1& 24,1& 18,1& 12,1& 6,1& 0,1& & & 3:3:4 &10\cr 11& 96,3& 72,4 & 52,3& 42,2& 36,1& 30,1& 24,1& 18,1& 12,1& 6,1& 0,1& & 3:4:4 &11\cr 12&108,3& 82,4 & 60,4& 48,3& 42,1& 36,1& 30,1& 24,1& 18,1& 12,1& 6,1& 0,1& 4:4:4 &12\cr 13&121,4& 92,4 & 70,4& 56,3& 48,1& 42,1& 36,1& 30,1& 24,1& 18,1& 12,1& 6,1& 3:3:3:4 &13\cr 14&134,4&102,5 & 80,4& 64,3& 54,2& 48,1& 42,1& 36,1& 30,1& 24,1& 18,1& 12,1& 3:3:4:4 &14\cr 15&147,4&114,5 & 90,5& 72,3& 60,3& 54,1& 48,1& 42,1& 36,1& 30,1& 24,1& 18,1& 3:4:4:4 &15\cr 16&160,4&124,7 &102,4& 80,4& 68,3& 60,1& 54,1& 48,1& 42,1& 36,1& 30,1& 24,1& 4:4:4:4 &16\cr 17&175,4&134,8 &112,4& 90,4& 76,3& 66,2& 60,1& 54,1& 48,1& 42,1& 36,1& 30,1& 4:4:4:5 &17\cr 18&190,4&144,9 &122,4&100,4& 84,3& 72,3& 66,1& 60,1& 54,1& 48,1& 42,1& 36,1& 4:4:5:5 &18\cr 19&205,4&156,9 &132,5&110,4& 92,3& 80,3& 72,1& 66,1& 60,1& 54,1& 48,1& 42,1& 4:5:5:5 &19\cr 20&220,4&168,9 &144,4&120,5&100,4& 88,3& 78,2& 72,1& 66,1& 60,1& 54,1& 48,1& 5:5:5:5 &20\cr 21&236,5&180,9 &154,4&132,4&110,4& 96,3& 84,3& 78,1& 72,1& 66,1& 60,1& 54,1& 4:4:4:4:5&21\cr 22&252,3&192,10&164,4&142,4&120,4&104,3& 92,3& 84,1& 78,1& 72,1& 66,1& 60,1& 4:9:9 &22\cr 23&266,3&204,11&174,5&152,4&130,4&112,3&100,3& 90,2& 84,1& 78,1& 72,1& 66,1& 5:9:9 &23\cr 24&282,3&216,12&186,5&162,5&140,4&120,4&108,3& 96,3& 90,1& 84,1& 78,1& 72,1& 5:9:10 &24\cr 25&296,3&229,12&196,7&174,4&150,5&130,4&116,3&104,3& 96,1& 90,1& 84,1& 78,1& 7:9:9 &25\cr } nASH VYVOD VYRAZHENIYA~$(2)$ POKAZYVAET, CHTO VSEGDA, KOGDA ISPOLXZUYUTSYA $P+1$~RAVNYH BUFEROV, BUDET IMETX MESTO SOOTNOSHENIE~$\alpha\le\beta$. pREDELXNYJ SLUCHAJ~$\alpha=\beta$, POKAZANNYJ V TABL.~1 I NA RIS.~93, VOZNIKAET TOGDA, KOGDA TREBUETSYA MINIMIZIROVATX SAMO VREMYA POISKA BEZOTNOSITELXNO KO VREMENI PEREDACHI. vERNEMSYA K NASHEJ PERVONACHALXNOJ ZADACHE. mY ESHCHE NE RASSMOTRELI, KAK POLUCHITX NACHALXNYE OTREZKI; BEZ SOVMESHCHENIYA CHTENIYA/ZAPISI/VYCHISLENIJ VYBOR S ZAMESHCHENIEM TERYAET NEKOTORYE IZ SVOIH PREIMUSHCHESTV. vOZMOZHNO, NAM SLEDUET ZAPOLNITX VSYU VNUTRENNYUYU \picture{rIS. 93. oPTIMALXNYJ SPOSOB SLIYANIYA 22 NACHALXNYH OTREZKOV RAVNOJ DLINY, ESLI V TEOREME n $\alpha=\beta$. eTA SHEMA MINIMIZIRUET VREMYA POISKA PRI PREDPOLOZHENIYAH, PRIVEDSHIH K FORMULE (2). } PAMYATX, OTSORTIROVATX EE I VYVESTI REZULXTAT; KAZHDUYU IZ TAKIH OPERACIJ VVODA I VYVODA MOZHNO VYPOLNITX S ODNIM POISKOM. iLI, VOZMOZHNO, LUCHSHE ISPOLXZOVATX, SKAZHEM, 20\% PAMYATI KAK KOMBINIROVANNYJ BUFER VVODA/VYVODA I VYPOLNYATX VYBOR S ZAMESHCHENIEM. eTO TREBUET V PYATX RAZ BOLXSHE POISKOV (DOPOLNITELXNO PRIMERNO 60~S!), NO UMENXSHAET CHISLO NACHALXNYH OTREZKOV SO~100 DO~64; UMENXSHENIE BUDET ESHCHE BOLEE REZKIM, ESLI VVODNYJ FAJL UZHE POCHTI UPORYADOCHEN. eSLI MY RESHILI NE ISPOLXZOVATX VYBOR S ZAMESHCHENIEM, TO OPTIMALXNOE DEREVO DLYA $S=100$, $\alpha=0.00145$, $\beta=0.01545$ [SM. (2)] OKAZYVAETSYA VESXMA PROZAICHESKIM. eTO PROSTO 10-PUTEVOE SLIYANIE, VYPOLNYAEMOE ZA DVA PROHODA PO DANNYM. vYDELYAYA 30~S NA VNUTRENNYUYU SORTIROVKU (SKAZHEM, 100~BYSTRYH SORTIROVOK), POLUCHAEM, CHTO NACHALXNYJ RASPREDELITELXNYJ PROHOD, ZANIMAET PRIMERNO $2{1\over2}$~MIN, A KAZHDYJ PROHOD SLIYANIYA ZANIMAET POCHTI 5~MIN; V ITOGE IMEEM $12.4$~MIN. eSLI MY RESHILI ISPOLXZOVATX VYBOR S ZAMESHCHENIEM, TO OPTIMALXNOE DEREVO DLYA $S=64$ OKAZYVAETSYA ODINAKOVO NEINTERESNYM (DVA PROHODA 8-PUTEVOGO SLIYANIYA); NACHALXNYJ RASPREDELITELXNYJ PROHOD ZANIMAET PRIMERNO $3{1\over2}$~MIN, KAZHDYJ PROHOD SLIYANIYA---OKOLO $4{1\over2}$~MIN, OCENKA OBSHCHEGO VREMENI SOSTAVLYAET 12.6~MIN. %%440 vSPOMNIM, CHTO V OBOIH |TIH METODAH FAKTICHESKI POLNOSTXYU ISKLYUCHAETSYA SOVMESHCHENIE CHTENIYA/ZAPISI/VYCHISLENIJ, CHTOBY IMETX BOLXSHIE BUFERY (S CELXYU UMENXSHENIYA VREMENI POISKA). nI ODNA IZ |TIH OCENOK NE VKLYUCHAET VREMYA, KOTOROE MOZHET POTREBOVATXSYA DLYA OPERACIJ KONTROLXNOGO CHTENIYA. nA PRAKTIKE POSLEDNIJ PROHOD SLIYANIYA OKAZYVAETSYA OTLICHNYM OT OSTALXNYH; NAPRIMER, VYVODNYE DANNYE CHASTO REDAKTIRUYUTSYA I/ILI ZAPISYVAYUTSYA NA LENTU. v TAKIH SLUCHAYAH DEREVO, IZOBRAZHAYUSHCHEE SHEMU SLIYANIYA, SLEDUET VYBIRATX S ISPOLXZOVANIEM V KORNEVOM UZLE INOGO KRITERIYA OPTIMALXNOSTI. \section *dRUGOJ SPOSOB RASPREDELENIYA BUFEROV. dAVID~e.~fERGYUSON UKAZAL [{\sl CACM,\/} {\bf 14} (1971), 476--478], CHTO MOZHNO UMENXSHITX VREMYA POISKA, ESLI NE DELATX VSE BUFERY ODNOGO RAZMERA. tA ZHE MYSLX I PRIMERNO V TO ZHE VREMYA PRISHLA V GOLOVU ESHCHE NESKOLXKIM LICAM [S.~J.~Waters, {\sl Comp.~J.,\/} {\bf 14} (1971), 109--112; Ewing~S.~Walker, Software Age, {\bf 4} (August-September, 1970), 16--17]. pREDPOLOZHIM, CHTO MY VYPOLNYAEM CHETYREHPUTEVOE SLIYANIE OTREZKOV RAVNOJ DLINY~$L_0$, IMEYA PAMYATX V $M$~LITER. eSLI MY RAZDELIM PAMYATX NA RAVNYE BUFERY RAZMERA~$B=M/5$, TO NAM POTREBUETSYA OKOLO $L_0/B$~POISKOV DLYA KAZHDOGO VVODNOGO FAJLA I $4L_0/B$~POISKOV DLYA VYVODA, CHTO V SUMME DAET $8L_0/B = 40L_0/M$~POISKOV. nO ESLI MY ISPOLXZUEM CHETYRE BUFERA VVODA RAZMERA~$M/6$ I ODIN BUFER VYVODA RAZMERA~$M/3$, TO NAM POTREBUETSYA VSEGO LISHX OKOLO $4\times(6L_0/M)+4\times(3L_0/M)=36L_0/M$~POISKOV! vREMENA PEREDACHI V OBOIH SLUCHAYAH ODINAKOVY, TAK CHTO MY NICHEGO NE POTERYAEM OT |TOGO IZMENENIYA. v OBSHCHEM SLUCHAE PREDPOLOZHIM, CHTO MY HOTIM SLITX OTSORTIROVANNYE FAJLY, IMEYUSHCHIE DLINY~$L_0$,~\dots, $L_p$, V OTSORTIROVANNYJ FAJL DLINY~$L_{P+1}=L_1+\cdots+L_P$, I PREDPOLOZHIM, CHTO DLYA $k\hbox{-GO}$FAJLA ISPOLXZUETSYA BUFER RAZMERA~$B_k$. tOGDA $$ B_1+\cdots+B_P+B_{P+1}=M, \eqno(6) $$ GDE $M$---OBSHCHIJ OB®EM NALICHNOJ VNUTRENNEJ PAMYATI. chISLO POISKOV BUDET PRIBLIZITELXNO RAVNO $$ {L_1\over B_1}+\cdots+{L_P\over B_P}+{L_{P+1}\over B_{P+1}}. \eqno(7) $$ pOPYTAEMSYA MINIMIZIROVATX |TU VELICHINU PRI USLOVII~(6), SCHITAYA DLYA UDOBSTVA, CHTO $B_k$ NE OBYAZANY BYTX CELYMI. eSLI UVELICHITX~$B_j$ NA~$\delta$ I UMENXSHITX~$B_k$ NA TU ZHE NEBOLXSHUYU VELICHINU, TO CHISLO POISKOV IZMENITSYA NA $$ {L_j\over B_j+\delta}-{L_j\over B_j}+{L_k\over B_k-\delta}-{L_k\over B_k} =\left({L_k\over B_k(B_k-\delta)}-{L_j\over B_j(B_j+\delta)}\right)\delta, $$ T.~E., RASPREDELENIE MOZHNO ULUCHSHITX, ESLI $L_j/B^2_j\ne L_k/B^2_k$. sLEDOVATELXNO, %% 441 MY POLUCHIM MINIMALXNOE CHISLO POISKOV, TOLXKO ESLI $$ {L_1\over B^2_1}=\cdots={L_P\over B^2_P}={L_{P+1}\over B^2_{P+1}}. \eqno(8) $$ tAK KAK MINIMUM OBYAZATELXNO SUSHCHESTVUET, ON DOLZHEN DOSTIGATXSYA PRI $$ B_k=\sqrt{L_k}M/(\sqrt{L_1}+\cdots+\sqrt{L_{P+1}}),\quad 1\le k\le P+1, \eqno(9) $$ POSKOLXKU |TO EDINSTVENNYE ZNACHENIYA~$B_1$,~\dots, $B_{P+1}$, UDOVLETVORYAYUSHCHIE ODNOVREMENNO~(6) I~(8). pODSTANOVKA |TIH ZNACHENIJ V~(7) DAET VESXMA PROSTUYU FORMULU DLYA OBSHCHEGO CHISLA POISKOV: $$ (\sqrt{L_1}+\cdots+\sqrt{L_{P+1}})^2/M, \eqno(10) $$ KOTORUYU MOZHNO SRAVNITX S CHISLOM $(P+1)(L_1+\cdots+L_{P+1})/M$, POLUCHAYUSHCHIMSYA V TOM SLUCHAE, ESLI VSE BUFERY RAVNY PO DLINE. vYIGRYSH RAVEN~$\sum_{1\le j2$, TO IMEEM $g(n+1)+g(n-1)0$ SUSHCHESTVUET DEREVO S $n$~LISTXYAMI I MINIMALXNOJ DLINOJ STEPENNOGO PUTI (11), VSE LISTXYA KOTOROGO RASPOLOZHENY NA ODNOM UROVNE. \ex[M24] pOKAZHITE, CHTO PRI $2\le n \le d(\alpha,\beta)$ EDINSTVENNOJ NAILUCHSHEJ SHEMOJ SLIYANIYA V SMYSLE TEOREMY~H YAVLYAETSYA $n\hbox{-PUTEVOE}$ SLIYANIE. (sR. S FORMULOJ (17).) \ex[40] pRI ISPOLXZOVANII KVADRATICHNOGO METODA RASPREDELENIYA BUFEROV VREMYA POISKA DLYA -SHEMY SLIYANIYA NA RIS.~92 BUDET PROPORCIONALXNO $(\sqrt{2}+\sqrt{4}+\sqrt{1}+\sqrt{1}+\sqrt{8})^2 +(\sqrt{1}+\sqrt{1}+\sqrt{2})^2+\sqrt{1}+\sqrt{2} +(\sqrt{1}+\sqrt{4})^2+(\sqrt{1}+\sqrt{1}+\sqrt{2})^2$; |TO ZNACHENIE PREDSTAVLYAET SOBOJ SUMMU VELICHIN $(\sqrt{n_1}+\cdots+\sqrt{n_m}+\sqrt{n_1+\cdots+n_m})^2$ PO VSEM VNUTRENNIM UZLAM, GDE PODDEREVXYA |TIH UZLOV IMEYUT $(n_1, \ldots, n_m)$~LISTXEV. nAPISHITE PROGRAMMU DLYA evm, KOTORAYA POROZHDAET DEREVXYA S MINIMALXNYM VREMENEM POISKA, IMEYUSHCHIE $1$, $2$, $3$, \dots{} LISTXEV, ISPOLXZUYA DLYA OCENKI VREMENI POISKA |TU FORMULU. \ex[M22] pOKAZHITE, CHTO MOZHNO NESKOLXKO USILITX TEOREMU~F, ESLI LIFT PERVONACHALXNO PUST I ESLI $nF(c)\ne t$: V |TOM SLUCHAE NEOBHODIMO NE MENEE $\ceil{(nF(c)+b-t)/(b+c)}$~OSTANOVOK. \ex[23] (r.~u.~fLOJD.) nAJDITE GRAFIK RABOTY LIFTA, PEREVOZYASHCHIJ VSEH LYUDEJ IZ~(22) K IH MESTAM NAZNACHENIYA ZA~12 ILI MENXSHEE CHISLO OSTANOVOK. (v~(23) POKAZANO POLOZHENIE POSLE ODNOJ, A NE POSLE DVUH OSTANOVOK.) \ex[25] (b.~t.~bENNET I a.~ch.~mAK-kELLAR, 1971.) rASSMOTRIM SLEDUYUSHCHIJ METOD S SORTIROVKOJ KLYUCHEJ, PRODEMONSTRIROVANNYJ NA PRIMERE FAJLA S 10 KLYUCHAMI: \medskip \item{a)} iSHODNYJ FAJL: $(50, I_0)$ $(08, I_1)$ $(51, I_2)$ $(06, I_3)$ $(90, I_4)$ $(17, I_5)$ $(89, I_6)$ $(27, I_7)$ $(65, I_8)$ $(42, I_9)$. \item{b)} fAJL KLYUCHEJ: $(50, 0)$ $(08, 1)$ $(51, 2)$ $(06, 3)$ $(90, 4)$ $(17, 5)$ $(89, 6)$ $(27, 7)$ $(65, 8)$ $(42, 9)$. \item{c)} oTSORTIROVANNYJ (b): $(06, 3)$ $(08, 1)$ $(17, 5)$ $(27, 7)$ $(42, 9)$ $(50,0)$ $(51,2)$ $(65, 8)$ $(89, 6)$ $(90, 4)$. \item{d)} pRISVAIVANIE NOMEROV YASHCHIKOV: $(3, 3)$ $(3, 9)$ $(2, 1)$ $(2, 5)$ $(2, 7)$ $(2, 8)$ $(1, 0)$ $(1, 2)$ $(1, 4)$ $(1, 6)$. \item{e)} oTSORTIROVANNYJ (d): $(1, 0)$ $(2, 1)$ $(1, 2)$ $(3, 3)$ $(1, 4)$ $(2, 5)$ $(1, 6)$ $(2, 7)$ $(2, 8)$ $(3, 9)$. \item{f)} (a), RASPREDELENNYJ PO YASHCHIKAM S ISPOLXZOVANIEM (e): \itemitem{yaSHCHIK 1:} $(50, I_0)$ $(51, I_2)$ $(90, I_4)$ $(89, I_6)$. \itemitem{yaSHCHIK 2:} $(08, I_1)$ $(17, I_5)$ $(27, I_7)$ $(65, I_8)$. \itemitem{yaSHCHIK 3:} $(06, I_3)$ $(42, I_9)$. \item{g)} rEZULXTAT VYBORA S ZAMESHCHENIEM (SNACHALA CHITAETSYA YASHCHIK~3, ZATEM YASHCHIK~2, ZATEM YASHCHIK~1): $(06, I_3)$ $(08, I_1)$ $(17, I_5)$ $(27, I_7)$ $(42, I_9)$ $(50, I_0)$ $(51, I_2)$ $(65, I_8)$ $(89, I_6)$ $(90, I_4)$. \medskip \noindent nOMERA YASHCHIKOV NA SHAGE~(d) PRISVAIVAYUTSYA PUTEM PRIMENENIYA K~(S) \emph{VYBORA S ZAMESHCHENIEM SPRAVA NALEVO V UBYVAYUSHCHEM} PORYADKE PO VTOROJ KOMPONENTE. %%450 nOMER YASHCHIKA---|TO NOMER OTREZKA. v PRIVEDENNOM PRIMERE ISPOLXZUETSYA VYBOR S ZAMESHCHENIEM TOLXKO S DVUMYA |LEMENTAMI V DEREVE; DLYA VYBORA S ZAMESHCHENIEM V~(d) I~(g) DOLZHEN ISPOLXZOVATXSYA ODINAKOVYJ RAZMER DEREVA VYBORA. zAMETIM, CHTO SODERZHIMOE YASHCHIKOV NE OBYAZATELXNO UPORYADOCHENO. dOKAZHITE, CHTO |TOT METOD BUDET SORTIROVATX, T. E. CHTO VYBOR S ZAMESHCHENIEM V (g) OBRAZUET LISHX ODIN OTREZOK. (eTOT METOD UMENXSHAET CHISLO YASHCHIKOV, TREBUEMOE OBYCHNOJ SORTIROVKOJ KLYUCHEJ POSREDSTVOM RASPREDELENIYA, OSOBENNO ESLI ISHODNYE DANNYE UZHE V SILXNOJ STEPENI UPORYADOCHENY.) \rex[25] nEKOTORYE SISTEMY PREDOSTAVLYAYUT PROGRAMMISTAM \emph{VIRTUALXNUYU PAMYATX:} MOZHNO PISATX PROGRAMMY, ISHODYA IZ PREDPOLOZHENIYA, CHTO IMEETSYA OCHENX BOLXSHAYA VNUTRENNYAYA PAMYATX, SPOSOBNAYA VMESTITX VSE DANNYE. eTA PAMYATX RAZDELENA NA STRANICY, I LISHX NEMNOGIE IZ NIH DEJSTVITELXNO NAHODYATSYA VO VNUTRENNEJ PAMYATI V LYUBOJ MOMENT VREMENI, OSTALXNYE ZHE HRANYATSYA NA DISKAH ILI BARABANAH. pROGRAMMISTU NE NUZHNO VNIKATX VO VSE |TI PODROBNOSTI, TAK KAK SISTEMA SAMA OBO VSEM ZABOTITSYA: NOVYE STRANICY AVTOMATICHESKI VYZYVAYUTSYA V PAMYATX, KOGDA ONI NUZHNY. mOZHET POKAZATXSYA, CHTO POYAVLENIE VIRTUALXNOJ PAMYATI PRIVODIT K OTMIRANIYU METODOV VNESHNEJ SORTIROVKI, TAK KAK |TA RABOTA MOZHET BYTX VYPOLNENA PROSTO S POMOSHCHXYU METODOV, RAZRABOTANNYH DLYA VNUTRENNEJ SORTIROVKI. rAZBERITE |TU SITUACIYU. pOCHEMU SPECIALXNO RAZRABOTANNYJ METOD VNESHNEJ SORTIROVKI MOZHET OKAZATXSYA LUCHSHE PRIMENENIYA OBSHCHEJ TEHNIKI PODKACHKI STRANIC K METODU VNUTRENNEJ SORTIROVKI? \subchap{rezyume. istoriya i bibliografiya} % 5.5 tEPERX, KOGDA MY POCHTI DOSTIGLI KONCA |TOJ OCHENX DLINNOJ GLAVY, STOIT "OTSORTIROVATX" NAIBOLEE VAZHNYE FAKTY IZ CHISLA IZUCHENNYH. aLGORITM SORTIROVKI---|TO PROCEDURA, KOTORAYA REORGANIZUET FAJL ZAPISEJ TAKIM OBRAZOM, CHTOBY KLYUCHI OKAZALISX V VOZRASTAYUSHCHEM PORYADKE. bLAGODARYA TAKOMU UPORYADOCHENNOMU RASPOLOZHENIYU GRUPPIRUYUTSYA ZAPISI S RAVNYMI KLYUCHAMI, STANOVITSYA VOZMOZHNOJ |FFEKTIVNAYA OBRABOTKA MNOGIH FAJLOV, OTSORTIROVANNYH PO ODNOMU KLYUCHU, SOZDAETSYA OSNOVA DLYA |FFEKTIVNYH ALGORITMOV VYBORKI I BOLEE UBEDITELXNO VYGLYADYAT DOKUMENTY, PODGOTOVLENNYE S POMOSHCHXYU evm. \emph{vNUTRENNYAYA SORTIROVKA} ISPOLXZUETSYA V TEH SLUCHAYAH, KOGDA VSE ZAPISI POMESHCHAYUTSYA V BYSTROJ VNUTRENNEJ PAMYATI MASHINY. mY IZUCHILI S RAZNOJ STEPENXYU DETALIZACII BOLEE DVUH DESYATKOV ALGORITMOV VNUTRENNEJ SORTIROVKI, NO NAM, NAVERNOE, BYLO BY KUDA SPOKOJNEE, ESLI BY MY NE ZNALI TAK MNOGO RAZLICHNYH PODHODOV K |TOJ ZADACHE! iZUCHENIE VSEH |TIH METODOV BYLO PRIYATNYM VREMYAPROVOZHDENIEM. nO TEPERX PERED NAMI BEZRADOSTNAYA PERSPEKTIVA---PREDSTOIT NA DELE RESHITX, KAKOJ METOD SLEDUET ISPOLXZOVATX V TOJ ILI INOJ KONKRETNOJ SITUACII. bYLO BY PREKRASNO, ESLI BY TOLXKO ODIN ILI DVA METODA SORTIROVKI PREVOSHODILI VSE OSTALXNYE BEZOTNOSITELXNO K PRILOZHENIYU ILI ISPOLXZUEMOJ MASHINE. nA SAMOM ZHE DELE KAZHDYJ METOD IMEET SVOI SOBSTVENNYE, ODNOMU EMU PRISUSHCHIE DOSTOINSTVA. nAPRIMER, METOD PUZYRXKA (ALGORITM~5.2.2v) NE IMEET YARKO VYRAZHENNYH PREIMUSHCHESTV, TAK KAK VSEGDA MOZHNO NAJTI LUCHSHIJ SPOSOB SDELATX TO, CHTO ON DELAET; NO DAZHE |TOT METOD POSLE SOOTVETSTVUYUSHCHEGO OBOBSHCHENIYA OKAZYVAETSYA POLEZNYM DLYA SORTIROVKI S DVUMYA LENTAMI (SM. P.~5.4.8). iTAK, PRIHODIM K ZAKLYUCHENIYU, CHTO POCHTI VSE ALGORITMY ZASLUZHIVAYUT TOGO, CHTOBY O NIH POMNILI, TAK KAK SUSHCHESTVUYUT PRILOZHENIYA, V KOTORYH ONI OKAZYVAYUTSYA VESXMA HOROSHIMI. v SLEDUYUSHCHEM KRATKOM OBZORE OSVESHCHAYUTSYA OSNOVNYE ASPEKTY NAIBOLEE VAZHNYH ALGORITMOV VNUTRENNEJ SORTIROVKI, S KOTORYMI MY VSTRECHALISX. (kAK OBYCHNO, $N$ OZNACHAET CHISLO ZAPISEJ V FAJLE.) %%452 1. {\sl rASPREDELYAYUSHCHIJ PODSCHET.\/} aLGORITM~5.2D OCHENX POLEZEN, ESLI DIAPAZON KLYUCHEJ NEVELIK. mETOD USTOJCHIV (NE IZMENYAETSYA PORYADOK ZAPISEJ S RAVNYMI KLYUCHAMI), NO TREBUETSYA PAMYATX DLYA SCHETCHIKOV I $2N$~ZAPISEJ. oDNA IZ MODIFIKACIJ, |KONOMYASHCHAYA $N$ IZ |TIH ZAPISEJ CENOJ USTOJCHIVOSTI, VSTRECHAETSYA V UPR. 5.2-13. 2. {\sl pROSTYE VSTAVKI.\/} aLGORITM 5.2.1S NAIBOLEE PROST DLYA PROGRAMMIROVANIYA, NE TREBUET DOPOLNITELXNOGO PROSTRANSTVA I VPOLNE |FFEKTIVEN PRI MALYH~$N$ (SKAZHEM, PRI $N\le 25$). pRI BOLXSHIH~$N$ ON STANOVITSYA NEVYNOSIMO MEDLENNYM, ESLI TOLXKO ISHODNYE DANNYE NE OKAZHUTSYA SRAZU POCHTI UPORYADOCHENNYMI. 3. {\sl sORTIROVKA S UBYVAYUSHCHIM SHAGOM.\/} aLGORITM 5.2.1D (METOD shELLA) TAK ZHE DOVOLXNO PROSTO PROGRAMMIRUETSYA, ISPOLXZUET MINIMALXNYJ OB®EM PAMYATI I DOVOLXNO |FFEKTIVEN PRI UMERENNO BOLXSHIH~$N$ (SKAZHEM, PRI $N\le 1000$). 4. {\sl vSTAVKI V SPISOK.\/} aLGORITM 5.2.1L OSNOVAN NA TOJ ZHE IDEE, CHTO I PROSTYE VSTAVKI, I PO|TOMU GODITSYA TOLXKO PRI NEBOLXSHIH~$N$. kAK I V DRUGIH METODAH SORTIROVKI SPISKOV, V NEM BLAGODARYA OPERACIYAM SO SSYLKAMI |KONOMITSYA STOIMOSTX PEREMESHCHENIYA DLINNYH ZAPISEJ; |TO OSOBENNO UDOBNO, KOGDA ZAPISI IMEYUT PEREMENNUYU DLINU ILI YAVLYAYUTSYA CHASTXYU DRUGIH STRUKTUR DANNYH. 5. {\sl sORTIROVKA S VYCHISLENIEM ADRESA\/} |FFEKTIVNA, ESLI KLYUCHI PODCHINYAYUTSYA IZVESTNOMU (OBYCHNO RAVNOMERNOMU) ZAKONU RASPREDELENIYA; VAZHNEJSHIMI VARIANTAMI |TOGO PODHODA YAVLYAYUTSYA \emph{VSTAVKI V NESKOLXKO SPISKOV} (ALGORITM 5.2.1m) I KOMBINIROVANNAYA PORAZRYADNAYA SORTIROVKA SO VSTAVKAMI mAKLARENA (RASSMOTRENNAYA V KONCE P.~5.2.5). dLYA POSLEDNEGO METODA DOSTATOCHNO IMETX $O(\sqrt{N})$ DOPOLNITELXNYH YACHEEK PAMYATI. 6. {\sl oBMENNAYA SORTIROVKA SO SLIYANIEM.\/} aLGORITM 5.2.2m (METOD b|TCHERA) I RODSTVENNYJ EMU ALGORITM \emph{BITONNOJ SORTIROVKI} (UPR.~5.3.4-10) POLEZNY, ESLI MOZHNO ODNOVREMENNO VYPOLNYATX BOLXSHOE CHISLO SRAVNENIJ. 7. {\sl oBMENNAYA SORTIROVKA S RAZDELENIEM\/} (METOD hOARA, SHIROKO IZVESTNYJ KAK \emph{BYSTRAYA SORTIROVKA}). aLGORITM 5.2.2Q, VEROYATNO, SAMYJ POLEZNYJ UNIVERSALXNYJ ALGORITM VNUTRENNEJ SORTIROVKI, POSKOLXKU ON TREBUET OCHENX MALO PAMYATI I OPEREZHAET SVOIH KONKURENTOV PO SREDNEMU VREMENI VYPOLNENIYA NA BOLXSHINSTVE VYCHISLITELXNYH MASHIN. oDNAKO V NAIHUDSHEM SLUCHAE ON MOZHET RABOTATX OCHENX MEDLENNO. pO|TOMU, ESLI VEROYATNOSTX NESLUCHAJNYH DANNYH DOSTATOCHNO VELIKA, PRIHODITSYA TSHCHATELXNO VYBIRATX RAZDELYAYUSHCHIJ |LEMENT. eSLI VYBIRAETSYA MEDIANA IZ TREH |LEMENTOV (KAK PREDLAGAETSYA V UPR. 5.2.2-55), TO TAKOE %%453 POVEDENIE, KAK V NAIHUDSHEM SLUCHAE, STANOVITSYA KRAJNE MALOVEROYATNYM I, KROME TOGO, NESKOLXKO UMENXSHAETSYA SREDNEE VREMYA RABOTY. 8.~{\sl pROSTOJ VYBOR.\/} aLGORITM~5.2.3S DOVOLXNO PROST I OSOBENNO PODHODIT V SLUCHAE, KOGDA IMEETSYA SPECIALXNOE OBORUDOVANIE DLYA BYSTROGO POISKA NAIMENXSHEGO |LEMENTA V SPISKE. 9.~{\sl pIRAMIDALXNAYA SORTIROVKA.\/} aLGORITM~5.2.4n PRI MINIMALXNYH TREBOVANIYAH PAMYATI OBESPECHIVAET DOSTATOCHNO VYSOKUYU SKOROSTX SORTIROVKI; KAK SREDNEE VREMYA RABOTY, TAK I MAKSIMALXNOE VREMYA PRIMERNO VDVOE BOLXSHE SREDNEGO VREMENI BYSTROJ SORTIROVKI. 10.~{\sl sLIYANIE SPISKOV.\/} aLGORITM~5.2.4L OSUSHCHESTVLYAET SORTIROVKU SPISKOV, PRI KOTOROJ, TAK ZHE KAK I PRI PIRAMIDALXNOJ SORTIROVKE, OBESPECHIVAETSYA VESXMA VYSOKAYA SKOROSTX DAZHE V NAIHUDSHEM SLUCHAE, KROME TOGO, |TOT METOD USTOJCHIV PO OTNOSHENIYU K RAVNYM KLYUCHAM. 11.~{\sl pORAZRYADNAYA SORTIROVKA S ISPOLXZOVANIEM ALGORITMA\/} 5.2.5R---|TO NE CHTO INOE, KAK SORTIROVKA SPISKOV, KOTORAYA PRIEMLEMA DLYA KLYUCHEJ, LIBO OCHENX KOROTKIH, LIBO IMEYUSHCHIH NEOBYCHNYJ PORYADOK LEKSIKOGRAFICHESKOGO SRAVNENIYA. vMESTO SSYLOK MOZHNO PRIMENITX RASPREDELYAYUSHCHIJ PODSCHET (PUNKT~1 NASHEGO OBZORA); TAKAYA PROCEDURA POTREBUET PROSTRANSTVA DLYA $2N$~ZAPISEJ I DLYA TABLICY, SCHETCHIKOV, NO BLAGODARYA PROSTOTE VNUTRENNEGO CIKLA ONA OSOBENNO HOROSHA DLYA SVERHBYSTRYH evm---"POZHIRATELXNIC CHISEL", IMEYUSHCHIH OPEREZHAYUSHCHEE UPRAVLENIE. (\emph{pREDOSTEREZHENIE.} pORAZRYADNUYU SORTIROVKU NE SLEDUET ISPOLXZOVATX PRI MALYH~$N$.) 12.~{\sl sORTIROVKA VSTAVKAMI I SLIYANIEM\/} (SM.~P.~5.3.1) NAIBOLEE PRIEMLEMA PRI OCHENX MALYH~$N$ V "PRYAMOLINEJNYH" PROGRAMMAH. nAPRIMER, |TOT METOD OKAZALSYA BY PODHODYASHCHIM V TEH PRILOZHENIYAH, GDE TREBUETSYA SORTIROVATX MNOGO GRUPP IZ PYATI ILI SHESTI ZAPISEJ. 13. mOGUT SUSHCHESTVOVATX I GIBRIDNYE METODY, OB®EDINYAYUSHCHIE ODIN ILI BOLEE IZ PRIVEDENNYH VYSHE METODOV. nAPRIMER, KOROTKIE PODFAJLY, VOZNIKAYUSHCHIE PRI BYSTROJ SORTIROVKE, MOZHNO SORTIROVATX SLIYANIEM I VSTAVKAMI. 14. i NAKONEC, DLYA REALIZACII BEZYMYANNOGO METODA, VSTRETIVSHEGOSYA V OTVETE K UPR.~5.2.1-3, TREBUETSYA, PO-VIDIMOMU, KRATCHAJSHAYA IZ VOZMOZHNYH PROGRAMM SORTIROVKI. nO SREDNEE VREMYA RABOTY TAKOJ PROGRAMMY PROPORCIONALXNO~$N^3$, T.~E.~|TO SAMAYA MEDLENNAYA PROGRAMMA SORTIROVKI V KNIGE! pROSTRANSTVENNYE I VREMENNYE HARAKTERISTIKI MNOGIH IZ |TIH METODOV, ZAPROGRAMMIROVANNYH DLYA \MIX, SVEDENY V TABL.~1. %%454 \picture{tABLICA 1, STR. 454} vAZHNO IMETX V VIDU, CHTO CHISLA V |TOJ TABLICE YAVLYAYUTSYA LISHX GRUBYMI POKAZATELYAMI OTNOSITELXNOGO VREMENI SORTIROVKI. oNI PRIMENIMY TOLXKO K ODNOJ evm, I PREDPOLOZHENIYA, KASAYUSHCHIESYA ISHODNYH DANNYH, DALEKO NE DLYA VSEH PROGRAMM ABSOLYUTNO PRAVOMERNY. sRAVNITELXNYE TABLICY, PODOBNYE |TOJ, PRIVODILISX VO MNOGIH RABOTAH, NO NE NAJDETSYA TAKIH DVUH AVTOROV, KOTORYE PRISHLI BY K ODINAKOVYM VYVODAM! tEM NE MENEE UKAZANIYA O VREMENI RABOTY POZVOLYAYUT OCENITX HOTYA BY PORYADOK SKOROSTI, KOTORUYU SLEDUET OZHIDATX OT KAZHDOGO ALGORITMA PRI SORTIROVKE ZAPISEJ IZ ODNOGO SLOVA, TAK KAK \MIX---DOVOLXNO TIPICHNAYA MASHINA. sTOLBEC "PROSTRANSTVO" V TABL.~1 SODERZHIT NEKOTORUYU INFORMACIYU O KOLICHESTVE VSPOMOGATELXNOJ PAMYATI, ISPOLXZUEMOJ KAZHDYM ALGORITMOM, V EDINICAH DLINY ZAPISI. zDESX BUKVOJ~$\varepsilon$ OBOZNACHENA DOLYA ZAPISI, TREBUEMAYA DLYA ODNOGO POLYA SVYAZI; TAK, NAPRIMER, $N(1+\varepsilon)$ OZNACHAET, CHTO METOD TREBUET PROSTRANSTVO DLYA $N$~ZAPISEJ I $N$~POLEJ SVYAZI. v ASIMPTOTICHESKIH SREDNIH I MAKSIMALXNYH VREMENAH, SODERZHASHCHIHSYA V TABL.~1, UCHITYVAYUTSYA TOLXKO GLAVNYE CHLENY, DOMINIRUYUSHCHIE PRI BOLXSHIH~$N$ V PREDPOLOZHENII SLUCHAJNYH ISHODNYH DANNYH; $c$~OBOZNACHAET PROIZVOLXNUYU KONSTANTU. eTI FORMULY MOGUT INOGDA VVESTI V ZABLUZHDENIE, PO|TOMU UKAZANO TAKZHE FAKTICHESKOE VREMYA RABOTY PROGRAMMY DLYA DVUH KONKRETNYH POSLEDOVATELXNOSTEJ ISHODNYH DANNYH. sLUCHAJ $N=16$, OTNOSITSYA K SHESTNADCATI KLYUCHAM, TAK CHASTO POYAVLYAVSHIMSYA V PRIMERAH \S~5.2, A SLUCHAJ $N=1000$ OTNOSITSYA K POSLEDOVATELXNOSTI $K_1$, $K_2$,~\dots, $K_{1000}$, OPREDELENNOJ FORMULAMI $$ K_0=0; \quad K_{n+1}=(3141592621K_n+2113148651)\bmod 10^{10}. $$ dLYA POLUCHENIYA HARAKTERISTIK KAZHDOGO ALGORITMA, PREDSTAVLENNOGO V TABLICE, ISPOLXZOVALASX VPOLNE "VYSOKOKACHESTVENNAYA" \MIX-PROGRAMMA, CHASTO S UCHETOM USOVERSHENSTVOVANIJ, PREDLOZHENNYH V UPRAZHNENIYAH. rAZMER BAJTA PRI VYPOLNENII |TIH PROGRAMM PRINYAT RAVNYM 100. dLYA \emph{VNESHNEJ SORTIROVKI} NEOBHODIMY METODY, OTLICHAYUSHCHIESYA OT METODOV VNUTRENNEJ SORTIROVKI, POTOMU CHTO V |TOM SLUCHAE PREDPOLAGAETSYA ISPOLXZOVANIE SRAVNITELXNO PROSTYH STRUKTUR DANNYH I BOLXSHOE VNIMANIE UDELYAETSYA UMENXSHENIYU VREMENI VVODA/VYVODA. v P.~5.4.6 RASSMATRIVAYUTSYA INTERESNYE METODY, RAZVITYE DLYA LENTOCHNOJ SORTIROVKI, A V P.~5.4.9 OBSUZHDAETSYA ISPOLXZOVANIE DISKOV I BARABANOV. kONECHNO, SORTIROVKA---NE EDINSTVENNOE SODERZHANIE |TOJ GLAVY. pOPUTNO MY UZNALI MNOGO O TOM, KAK RABOTATX SO STRUKTURAMI DANNYH, KAK OBRASHCHATXSYA S VNESHNEJ PAMYATXYU I KAK ANALIZIROVATX ALGORITMY, I, NAVERNOE, MY UZNALI NEMNOZHKO I O TOM, KAK OTKRYVATX NOVYE ALGORITMY. %%456 \section rANNIE RAZRABOTKI. pOISK ISTOCHNIKA SOVREMENNYH METODOV SORTIROVKI VOZVRASHCHAET NAS V 19-E~STOLETIE, KOGDA BYLI IZOBRETENY PERVYE MASHINY DLYA SORTIROVKI. v sOEDINENNYH shTATAH PEREPISX VSEH GRAZHDAN PROVODITSYA KAZHDYE 10~LET, I UZHE K 1880~G. PROBLEMA OBRABOTKI OGROMNYH PO OB®EMU DANNYH PEREPISI STALA OCHENX OSTROJ; I V SAMOM DELE, CHISLO ODINOKIH (V OTLICHIE OT CHISLA SOSTOYASHCHIH V BRAKE) V 1880~G. V TABLICAH OTSUTSTVUET, HOTYA \picture{rIS. 94. tABULYATOR hOLLERITA. (fOTOGRAFIYA LYUBEZNO PREDOSTAVLENA ARHIVOM IBM.) } VSYA NEOBHODIMAYA, INFORMACIYA BYLA SOBRANA. gERMAN hOLLERIT, DVADCATILETNIJ SLUZHASHCHIJ bYURO PEREPISI, IZOBREL OSTROUMNYJ |LEKTRICHESKIJ TABULYATOR, OTVECHAYUSHCHIJ NUZHDAM SBORA STATISTIKI, I OKOLO 100 EGO MASHIN USPESHNO ISPOLXZOVALISX PRI OBRABOTKE SPISKOV PEREPISI 1890~G. nA RIS.~94 IZOBRAZHEN PERVYJ APPARAT hOLLERITA, PRIVODIMYJ V DEJSTVIE OT AKKUMULYATORNYH BATAREJ. dLYA NAS OSNOVNOJ INTERES PREDSTAVLYAET "SORTIROVALXNYJ YASHCHIK" SPRAVA, KOTORYJ OTKRYT S CELXYU POKAZATX POLOVINU IZ 26 VNUTRENNIH OTDELENIJ. oPERATOR VSTAVLYAET PERFOKARTU RAZMERA $6{5\over8}\times3{1\over4}$~DYUJMOV V "PRESS" I OPUSKAET RUKOYATKU; |TO PRIVODIT K TOMU, CHTO ZAKREPLENNYE NA PRUZHINAH SHTYRI NA VERHNEJ PANELI V TEH %%457 \bye