\input style
%%122
РЫЙ ВЫПОЛНЯЕТ ОКОЛО ${1\over4}N^2$ СРАВНЕНИЙ И ОКОЛО ${1\over4}N^2$ 
ПЕРЕМЕЩЕНИЙ. мЫ УСОВЕРШЕНСТВОВАЛИ ЕГО, РАССМОТРЕВ БИНАРНЫЕ ВСТАВКИ, ПРИ 
КОТОРЫХ ВЫПОЛНЯЕТСЯ ОКОЛО $N\log_2N$ СРАВНЕНИЙ И ${1\over4}N^2$
ПЕРЕМЕЩЕНИЙ. нЕСКОЛЬКО ИЗМЕНИВ СТРУКТУРУ ДАННЫХ, ПРИМЕНИВ "ДВУХПУТЕВЫЕ 
ВСТАВКИ", СУМЕЛИ СОКРАТИТЬ ЧИСЛО ПЕРЕМЕЩЕНИЙ
ДО ${1\over8}N^2$. пРИ СОРТИРОВКЕ МЕТОДОМ шЕЛЛА "С УБЫВАЮЩИМ ШАГОМ"
ЧИСЛО СРАВНЕНИЙ И ПЕРЕМЕЩЕНИЙ СНИЖАЕТСЯ ПРИМЕРНО ДО $N^{1.3}$ ДЛЯ ТЕХ 
ЗНАЧЕНИЙ $N$, КОТОРЫЕ ВСТРЕЧАЮТСЯ НА ПРАКТИКЕ; ПРИ $N\to\infty$ ЭТО ЧИСЛО 
МОЖНО СОКРАТИТЬ ДО ПОРЯДКА $N(\log_2N)^2$. дАЛЬНЕЙШЕЕ СТРЕМЛЕНИЕ УЛУЧШИТЬ 
АЛГОРИТМ---ПУТЕМ ПРИМЕНЕНИЯ СВЯЗАННОЙ СТРУКТУРЫ ДАННЫХ---ПРИВЕЛО НАС К 
ВСТАВКАМ В СПИСОК,
ПРИ КОТОРЫХ ВЫПОЛНЯЕТСЯ ОКОЛО ${1\over4}N^2$ СРАВНЕНИЙ, 0 ПЕРЕМЕЩЕНИЙ
И $2N$ ИЗМЕНЕНИЙ СВЯЗЕЙ.

мОЖНО ЛИ СОЕДИНИТЬ ЛУЧШИЕ СВОЙСТВА ЭТИХ МЕТОДОВ, СОКРАТИВ ЧИСЛО СРАВНЕНИЙ 
ДО ПОРЯДКА $N\log N$, КАК ПРИ БИНАРНЫХ ВСТАВКАХ, И ИСКЛЮЧИВ ПРИ ЭТОМ 
ПЕРЕМЕЩЕНИЯ ДАННЫХ, КАК ПРИ ВСТАВКАХ
\picture{рИС. 13. пРИМЕР СХЕМЫ уИЛЕРА ДЛЯ ВСТАВОК В ДЕРЕВО.}
В СПИСОК? оТВЕТ УТВЕРДИТЕЛЬНЫЙ: ЭТО ДОСТИГАЕТСЯ ПЕРЕХОДОМ К ДРЕВОВИДНОЙ 
СТРУКТУРЕ. тАКАЯ ВОЗМОЖНОСТЬ БЫЛА ВПЕРВЫЕ ИССЛЕДОВАНА ОКОЛО 1957~Г. 
д.~дЖ.~уИЛЕРОМ, КОТОРЫЙ ПРЕДЛОЖИЛ ИСПОЛЬЗОВАТЬ ДВУХПУТЕВЫЕ ВСТАВКИ ДО ТЕХ 
ПОР, ПОКА НЕ ПОЯВИТСЯ НЕОБХОДИМОСТЬ ПЕРЕМЕЩАТЬ ДАННЫЕ. тОГДА ВМЕСТО ТОГО, 
ЧТОБЫ ИХ ПЕРЕМЕЩАТЬ, ВСТАВЛЯЕТСЯ УКАЗАТЕЛЬ НА НОВУЮ ОБЛАСТЬ ПАМЯТИ, И ТОТ 
ЖЕ САМЫЙ МЕТОД РЕКУРРЕНТНО ПРИМЕНЯЕТСЯ КО ВСЕМ ЭЛЕМЕНТАМ, КОТОРЫЕ НУЖНО 
ВСТАВИТЬ В ЭТУ НОВУЮ ОБЛАСТЬ ПАМЯТИ. оРИГИНАЛЬНЫЙ МЕТОД уИЛЕРА 
[СМ. A. S. Douglas, {\sl Comp. J.,\/} {\bf 2} (1959), 5] ПРЕДСТАВЛЯЕТ 
СОБОЙ СЛОЖНУЮ КОМБИНАЦИЮ ПОСЛЕДОВАТЕЛЬНОЙ И СВЯЗАННОЙ ПАМЯТИ С УЗЛАМИ 
ПЕРЕМЕННОГО РАЗМЕРА; ДЛЯ НАШИХ ШЕСТНАДЦАТИ ЧИСЕЛ БЫЛО БЫ СФОРМИРОВАНО 
ДЕРЕВО, ПОКАЗАННОЕ НА РИС.~13. аНАЛОГИЧНУЮ, НО БОЛЕЕ ПРОСТУЮ СХЕМУ 
ВСТАВКИ В ДЕРЕВО С ИСПОЛЬЗОВАНИЕМ БИНАРНЫХ ДЕРЕВЬЕВ НЕЗАВИСИМО 
%% 123
РАЗРАБОТАЛ ОКОЛО 1958~Г. к.м.~бЕРНЕС-лИ 
[СМ. {\sl Comp. J.\/}, {\bf 3} (1960), 174, 184]. 
сАМ ЭТОТ МЕТОД И ЕГО МОДЕРНИЗАЦИИ ВЕСЬМА ВАЖНЫ КАК ДЛЯ СОРТИРОВКИ, ТАК И 
ДЛЯ ПОИСКА, ПОЭТОМУ ПОДРОБНО ОНИ ОБСУЖДАЮТСЯ В ГЛ.~ 6.

еЩЕ ОДИН ПУТЬ УЛУЧШИТЬ ПРОСТЫЕ ВСТАВКИ---ПОПЫТАТЬСЯ ВСТАВЛЯТЬ НЕСКОЛЬКО 
ЭЛЕМЕНТОВ ОДНОВРЕМЕННО. еСЛИ, НАПРИМЕР, ИМЕЕТСЯ ФАЙЛ ИЗ 1000 ЭЛЕМЕНТОВ И 
998 ИЗ НИХ УЖЕ ОТСОРТИРОВАНЫ, ТО АЛГОРИТМ S ВЫПОЛНИТ ЕЩЕ ДВА ПРОСМОТРА 
ФАЙЛА (ВСТАВИВ СНАЧАЛА $R_{999}$, А ПОТОМ $R_{1000}$). оЧЕВИДНО, МОЖНО 
СЭКОНОМИТЬ ВРЕМЯ, ЕСЛИ СНАЧАЛА СРАВНИТЬ КЛЮЧИ $K_{999}$ c $K_{1000}$ ЧТОБЫ 
ВЫЯСНИТЬ, КОТОРЫЙ ИЗ НИХ БОЛЬШЕ, А ПОТОМ ВСТАВИТЬ ИХ \emph{ОБА} ЗА ОДИН 
ПРОСМОТР ФАЙЛА. кОМБИНИРОВАННАЯ ОПЕРАЦИЯ ТАКОГО РОДА ТРЕБУЕТ ОКОЛО 
$(2/3)N$ СРАВНЕНИЙ И ПЕРЕМЕЩЕНИЙ (СР. С УПР.~3.4.2--5) ВМЕСТО ДВУХ 
ПРОСМОТРОВ, ПРИМЕРНО ПО $N/2$ СРАВНЕНИЙ И ПЕРЕМЕЩЕНИЙ КАЖДЫЙ.

иНАЧЕ ГОВОРЯ, ОБЫЧНО БЫВАЕТ ПОЛЕЗНО "ГРУППИРОВАТЬ" ОПЕРАЦИИ, КОТОРЫЕ 
ТРЕБУЮТ ДЛИТЕЛЬНОГО ПОИСКА, ЧТОБЫ МОЖНО БЫЛО ВЫПОЛНИТЬ НЕСКОЛЬКО ОПЕРАЦИЙ 
ВМЕСТЕ. еСЛИ ДОВЕСТИ ЭТУ ИДЕЮ ДО ЕЕ ЕСТЕСТВЕННОГО ЗАВЕРШЕНИЯ, ТО МЫ ЗАНОВО 
ОТКРОЕМ ДЛЯ СЕБЯ СОРТИРОВКУ ПОСРЕДСТВОМ СЛИЯНИЯ, НАСТОЛЬКО ВАЖНУЮ, ЧТО 
ЕЙ ПОСВЯЩЕН ОТДЕЛЬНЫЙ ПУНКТ.

\section сОРТИРОВКА С ВЫЧИСЛЕНИЕМ АДРЕСА. тЕПЕРЬ УЖ МЫ, НЕСОМНЕННО,
 ИСЧЕРПАЛИ ВСЕ ВОЗМОЖНЫЕ СПОСОБЫ УСОВЕРШЕНСТВОВАТЬ МЕТОД ПРОСТЫХ ВСТАВОК, 
НО ДАВАЙТЕ ПОДУМАЕМ ЕЩЕ! пРЕДСТАВЬТЕ СЕБЕ, ЧТО ВАМ ДАЛИ ЧИСТЫЙ ЛИСТ БУМАГИ 
И СОБИРАЮТСЯ ДИКТОВАТЬ КАКИЕ-ТО СЛОВА. вАША ЗАДАЧА---ЗАПИСАТЬ ИХ В 
АЛФАВИТНОМ ПОРЯДКЕ И ВЕРНУТЬ ЛИСТОК С ОТСОРТИРОВАННЫМ СПИСКОМ СЛОВ. 
уСЛЫШАВ СЛОВО НА БУКВУ а, ВЫ БУДЕТЕ СТРЕМИТЬСЯ ЗАПИСАТЬ ЕГО БЛИЖЕ К 
ВЕРХНЕМУ КРАЮ СТРАНИЦЫ, ТОГДА КАК СЛОВО НА БУКВУ я БУДЕТ, ПО-ВИДИМОМУ, 
ПОМЕЩЕНО БЛИЖЕ К НИЖНЕМУ КРАЮ СТРАНИЦЫ И~Т.~Д. аНАЛОГИЧНЫЙ СПОСОБ 
ПРИМЕНЯЕТСЯ ПРИ РАССТАНОВКЕ КНИГ НА ПОЛКЕ ПО ФАМИЛИЯМ АВТОРОВ, ЕСЛИ КНИГИ 
БЕРУТСЯ С ПОЛА В СЛУЧАЙНОМ ПОРЯДКЕ: СТАВЯ КНИГУ НА ПОЛКУ, ВЫ ОЦЕНИВАЕТЕ ЕЕ 
КОНЕЧНОЕ ПОЛОЖЕНИЕ, СОКРАЩАЯ ТАКИМ ОБРАЗОМ ЧИСЛО НЕОБХОДИМЫХ СРАВНЕНИЙ И 
ПЕРЕМЕЩЕНИЙ. (эФФЕКТИВНОСТЬ ПРОЦЕССА ПОВЫШАЕТСЯ, ЕСЛИ НА ПОЛКЕ ИМЕЕТСЯ 
НЕМНОГО БОЛЬШЕ МЕСТА, ЧЕМ ЭТО АБСОЛЮТНО НЕОБХОДИМО.) тАКОЙ МЕТОД МАШИННОЙ 
СОРТИРОВКИ ВПЕРВЫЕ ПРЕДЛОЖИЛИ иСААК И сИНГЛТОН, 
[{\sl JACM\/},  {\bf 3} (1956), 169--174];
 ОН ПОЛУЧИЛ ДАЛЬНЕЙШЕЕ РАЗВИТИЕ В РАБОТЕ кРОНМЭЛА И тАРТАРА 
[Proc. ACM Nat'l Conf., {\bf 21} (1966), 331--337].

сОРТИРОВКА С ВЫЧИСЛЕНИЕМ АДРЕСА ОБЫЧНО ТРЕБУЕТ ДОПОЛНИТЕЛЬНОГО 
ПРОСТРАНСТВА ПАМЯТИ ЛИБО ДЛЯ ТОГО, ЧТОБЫ ОСТАВИТЬ ДОСТАТОЧНО СВОБОДНОГО 
МЕСТА И НЕ ДЕЛАТЬ МНОГО ЛИШНИХ ПЕРЕМЕЩЕНИЙ, ЛИБО ДЛЯ ХРАНЕНИЯ 
ВСПОМОГАТЕЛЬНЫХ ТАБЛИЦ, КОТОРЫЕ БЫ ПОЗВОЛЯЛИ УЧИТЫВАТЬ НЕРАВНОМЕРНОСТЬ 
РАСПРЕДЕЛЕНИЯ КЛЮЧЕЙ. (сМ. СОРТИРОВКУ РАСПРЕДЕЛЯЮЩИМ ПОДСЧЕТОМ (АЛГОРИТМ 
5.2D),
%% 124
\bye
