
книги из ГПНТБ / Папернов А.А. Методы упорядочения информации в цифровых системах
.pdf140 |
ГЛ. 3. |
МЕТОДЫ |
слияния |
что |
в вычислительной |
машине |
существуют групповые |
операции обмена между устройством упорядочения и памятью. Оценим выгоды использования такого устрой ства в процедурах упорядочения различных типов.
Для процедур упорядочения без резерва памяти наи более целесообразным в настоящее время представляет ся использование подобного устройства для повышения эффективности процедур упорядочения, построенных аналогично методу вставки и методу слияния, не требу ющему резервных объемов памяти (п. 3.5.4). В первом случае на каждом шаге осуществляется упорядочение группы из а старших элементов, оставшихся в процессо
ре от предыдущего шага упорядочения, с новой |
группой |
в а элементов из массива. После однократного |
участия |
в упорядочении всех элементов массива будет образова на группа из а старших элементов всего массива, кото рую следует зафиксировать на старших позициях масси
ва |
(при |
упорядочении |
в |
|
порядке |
возрастания). |
Всего |
|||
при |
этом |
выполняется |
і |
|
1 |
шагов |
упорядочения |
для |
||
= п/а групп элементов |
со сложностью |
этапа, определяе |
||||||||
мойі |
выражением |
|
— |
|
|
|
|
|
||
|
|
(і-\)(Ту |
|
+ |
2То6) + |
То6, |
|
(3.87) |
||
где |
Ту—сложность |
одной |
групповой |
операции упоря |
||||||
дочения в специальном |
|
устройстве, |
а |
Г о б —сложность |
вызова из памяти и отсылки в память группы из а эле ментов. Наличие последнего слагаемого объясняется спецификой выполнения первого шага упорядочения, при котором дважды используется операция вызова группы элементов из памяти.
В результате выполнения этапа число порций і в ос тавшейся неупорядоченной части уменьшается на едини цу. Поэтому для процедуры в целом имеем следующую оценку сложности (учитывая, что процедура заканчи вается упорядочением последней пары порций):
Г = " І І ( « - - 1 ) ( Г У + 2 Г 0 6 ) + Г 0 6 =
~т(т)'(Г'+2Ги)- (3-88)
§ 3.6. СПОСОБЫ АППАРАТНОЙ РЕАЛИЗАЦИИ МЕТОДА СЛИЯНИЯ 141
Таким образом, применение указанного устройства сокращает число шагов процедуры в квадратической за висимости от объема подмассива, который упорядочи вается устройством.
Для оценки метода слияния, не требующего резерв ных объемов памяти, з данных условиях можно непо средственно воспользоваться аналогами рекуррентных соотношений (3.61) и (3.62), определяющих сложность одного этапа слияния. Действительно, для образования одного подмассива из 2q элементов необходимо выпол нить три цикла слияния с образованием подмассивов из q элементов. Поэтому имеем
T(2q) |
= 3T(q). |
(3.89) |
|
Когда подмассив состоит из двух групп по а элемен |
|||
тов каждая, то образование |
объединенного массива из |
||
2а элементов имеет сложность |
Ту~{-АТоб (вызов, |
отсылка |
|
и упорядочение двух групп элементов). Поэтому |
|||
7 ( 2 а ) = |
Т у |
+ 4 Т о б . |
(3.90) |
Для образования подмассива |
из 21а элементов |
получа |
|
ем следующую оценку сложности: |
|
||
Г ( 2 ' а ) = 3 ' - 1 ( 7 ' у + 4 7 0 6 ), |
(3.91) |
a учитывая число подмассивов такого размера в общем массиве, получим выражение для сложности і-го этапа слияния
Г, = |
|
Т (2'а) = |
fa (-^у-1 (Г, + |
4 Т 0 6 ) . (3.92) |
||
Сложность всей процедуры в этих условиях |
|
|||||
10g2 — |
|
|
|
|
lOg.! — |
|
|
n |
|
3 \ |
a |
(Гу + 4 Т о б |
) |
|
|
i) |
|
|||
|
a |
|
|
|
|
|
|
0.585 |
(Ту |
+ 4 Т 0 6 ) ^ ^ ) 1 ' Ь Й |
(Гу + 4 Т о б ) , |
||
a |
J |
|
||||
|
|
|
|
|
(3.93)
142 |
Гл. 3. мнтоды слияния |
что также |
свидетельствует о существенном сокращении |
числа этапов как бы за счет уменьшения в соответству ющее число раз количества элементов исходного масси ва (сравни с (3.88)). При высокой скорости выполнения групповых операций обмена и самого упорядочения в процессоре это может дать весьма значительный эффект.
Использование специального устройства в классиче
ской |
процедуре слияния с необходимым |
резервом памя |
||||||||
|
|
мл. |
ти в оперативном |
|
запоми- |
|||||
|
|
нающем |
устройстве |
воз |
||||||
|
|
|
можно лишь |
при |
введе |
|||||
|
|
УГ |
нии специальных |
мер, по |
||||||
|
|
зволяющих |
контролиро |
|||||||
|
|
|
||||||||
|
|
|
вать |
момент |
исчерпания |
|||||
|
|
|
элементов |
в |
каждом из |
|||||
л'{ |
|
УЛ" |
сливаемых |
|
подмассивов. |
|||||
|
Рассмотрим |
одну |
|
из |
воз |
|||||
|
|
|
можных |
организаций |
спе |
|||||
|
|
|
циализированного |
устрой |
||||||
|
|
ушп |
ства |
упорядочения |
и ис |
|||||
|
|
пользование |
его |
в |
проце |
|||||
|
|
|
дуре |
слияния. |
|
|
|
|||
|
|
ст. |
Пусть |
элементы |
каж |
|||||
|
|
дого |
из сливаемых |
масси |
||||||
Рис. |
3.22. Структура |
устройства |
вов |
Л и |
В |
отмечаются |
||||
упорядочения для |
процедуры |
специальными |
метками, |
|||||||
|
|
|
сохраняющимися |
|
у |
эле |
||||
|
|
|
ментов |
и |
на |
выходе |
уст |
ройства упорядочения. Входы и выходы устройства упо рядочения разделены на три равные группы, как пока
зано на рис. 3.22. Группы входов обозначены |
/', / / ' |
и ///', |
а группы выходов — /", / / " и / / / " . Пусть |
группа |
выхо |
дов, соответствующая старшим элементам упорядоченно го подмассива (для упорядочения в порядке возраста ния), снабжена анализирующим устройством, позволяю щим определять отсутствие в этой группе элементов того или иного из исходных массивов А или В.
Процесс слияния в этом случае можно организовать следующим образом. На первом шаге слияния на вход устройства упорядочения подаются две группы элемен тов из одного массива (скажем, А), и одна группа эле ментов из другого массива. Дальнейшие действия прово-
§ 3.6. СПОСОБЫ АППАРАТНОЙ РЕАЛИЗАЦИИ МЕТОДА СЛИЯНИЯ 143
дятся единообразно по следующим правилам. Если анализ группы старших элементов на выходе устройства упорядочения обнаружит наличие элементов обоих мас сивов А и В, то обе группы младших элементов с вы хода устройства могут быть отосланы в результирую щий упорядоченный массив, так как и старший элемент
подмассива А , и старший элемент |
подмассива |
В |
на |
||
ходятся |
в группе старших элементов. На |
вход |
уст |
||
ройства |
упорядочения для следующего шага |
процедуры |
|||
в этом |
случае следует подать группу |
старших |
элемен |
тов с выхода устройства и по одной группе новых эле ментов из обоих сливаемых массивов А и В. Если же в результате анализа группы старших элементов на вы ходе устройства упорядочения обнаружится отсутствие
элементов одного из исходных массивов |
(например, А), |
то в результирующий упорядоченный |
массив следует |
отослать лишь одну группу младших элементов с вы хода устройства. На вход устройства упорядочения для следующего шага процедуры следует в этом случае по дать две группы старших элементов с выхода устрой ства (одна из которых состоит только из элементов мас сива В) и группу новых элементов из массива А . При отсутствии элементов массива В в анализируемой груп пе элементов на вход устройства для следующего шага слияния следует подать группу новых элементов из мас
сива В. |
|
Правомерность такого порядка действий |
следует |
из того, что на каждом шаге слияния на вход |
устрой |
ства упорядочения подается одна группа элементов массива А , одна группа элементов массива В и одна группа неопределенного состава. Поэтому, если в группе старших элементов обнаруживается отсутствие элемен тов какого-либо из исходных массивов, то старший элемент из этого массива, участвующий в слиянии на данном шаге, может занимать либо последнюю позицию младшей группы элементов на выходе устройства, либо произвольную позицию в группе средних элементов на выходе устройства упорядочения. В любом из этих слу чаев группу младших элементов можно отсылать в ре зультирующий массив.
Для сохранения единообразия действий на последних группах элементов, которые могут оказаться неполными,
144 |
ГЛ. |
3. МЕТОДЫ слияния |
их следует |
дополнить |
на входах устройства упорядоче |
ния фиктивными элементами с максимально возможны ми значениями признака.
Сложность одного этапа слияния можно оценить сле дующим соотношением (предполагая, что в массив в результате одного шага с равной вероятностью отсыла ется либо одна, либо две группы элементов):
Т, = -± (0,75Ту + 2 Г о б ) , |
(3.94) |
где п — размер всего упорядочиваемого массива, а а — величина одной группы элементов на входе устройства упорядочения. Сложность процедуры в целом опреде лится как
loge — |
|
|
|
|
|
Т= |
У-. T,.= (0,75 7 y + |
2 T o 6 ) ^ I o g 2 ^ . |
(3.95) |
||
і=і |
|
а |
а |
|
|
И в этом случае эффект введения групповой |
операции |
||||
упорядочения |
сказывается |
как |
соответствующее сокра |
||
щение объема |
массива. |
|
|
|
|
Следует заметить, что |
для |
выполнения описанных |
процедур (за исключением лишь одного первого этапа каждой из них) требуется использование не устройства упорядочения, а устройства слияния двух или трех упо
рядоченных подмассивов, |
которые |
существенно |
проще |
|||||
устройств упорядочения. |
|
|
|
|
|
|||
3.6.3. Устройство |
упорядочения |
с |
использованием |
|||||
слияния |
битонических |
подмассивов. Рассмотрим |
метод |
|||||
упорядочения, |
основанный |
на слиянии |
подмассивов с |
|||||
особой |
внутренней структурой, |
названной автором это |
||||||
го метода «битонической». |
|
|
|
|
|
|||
При |
определении |
битонической |
структуры |
будем |
||||
считать, |
что |
имеется |
кольцевая |
адресация элементов |
подмассива, позволяющая осуществить перебор всех его элементов в порядке возрастания номеров, начиная с произвольного его элемента. При этом от элемента с наи большим номером мы переходим к элементу с наи меньшим номером. По определению битонический под массив содержит минимальный и максимальный элемен ты, произвольно расположенные в подмассиве, и ряд других элементов, образующих при переходе от мини-
§ 3.6. СПОСОБЫ АППАРАТНОЙ РЕАЛИЗАЦИИ МЕТОДА СЛИЯНИЯ 145
мального элемента к максимальному в порядке возра стания номеров неубывающую последовательность, а при переходе от максимального элемента к минимальному в порядке возрастания номеров — невозрастающую по следовательность.
Неупорядоченный массив из п элементов можно рас
сматривать как совокупность из ~ |
битонических под |
массивов, так как любая пара элементов массива удов летворяет определению битонического подмассива. Ком паратор можно считать преобразователем битонического подмассива из двух элементов в упорядоченный подмассив, причем, в зависимости от способа соединения его выходов со входами последующей схемы, либо по воз растанию, либо по убыванию.
Если мы докажем, что из существования преобразо вателей, переводящих битонические подмассивы разме рами в 2* элементов в упорядоченные (как по возра станию, так и по убыванию) подмассивы того же раз мера, вытекает способ построения аналогичных преоб разователей для подмассивов из 2*+' элементов, то по индукции мы сможем сделать вывод о возможности упо рядочения таким образом массива любого размера.
Перейдем к доказательству этого утверждения. На рис. 3.23, а изображено распределение элементов бито нического подмассива из m элементов. Сформируем из
элементов подмассива -^- пар таким образом, чтобы в каждой паре адреса ее элементов отличались друг от друга на ~ . Каждую из таких пар свяжем с входами
компаратора, а выходы всех компараторов объединим так, чтобы все минимальные элементы образовали один
m
подмассив |
из |
элементов, |
а все максимальные эле- |
|||
|
|
|
т |
|
|
|
менты — другой |
подмассив из |
— |
элементов. |
|
||
Для того чтобы характеристики обоих подмассивов |
||||||
сделать |
более |
наглядными, |
сместим |
правую |
часть |
|
рис, 3.23,а |
с абсциссами м е ж д у — |
и m |
на |
влево. |
146 |
ГЛ. 3. МЕТОДЫ слияния |
В этом случае величины двух сравниваемых элементов любой пары окажутся расположенными на одной орди нате (рис. 3.23,6). Подмассивы из максимальных эле ментов и из минимальных элементов каждой пары ока-
Рис. 3.23. Сравнение элементов в битоническом подмассиве.
жутся битоническими и взаимно упорядоченными по от ношению друг к другу. Точка пересечения обеих кривых на рис. 3.23,6 окажется точкой, разделяющей по вели чине оба подмассива.
Схема слияния двух битонических подмассивов изоб ражена на рис. 3.24.
Один битонический подмассив преобразуется в под* массив, упорядоченный по возрастанию, а другой бито-
§ 3.0. СПОСОБЫ АППАРАТНОЙ РЕАЛИЗАЦИИ МЕТОДА СЛИЯНИЯ 14?
ничеокий подмассив— в подмаосив, упорядоченный по убыванию. Оба упорядоченных подмассива в совокупно сти образуют новый битонический подмассив вдвое большего размера.
Рис. 3.24. Устройство слияния битонических подмассивов.
(Б—У)^— устройство преобразования битонического подмассива в упорядочен ный подмассив.
|
Устройство упорядочения по |
возрастанию |
отличает |
|
ся |
от устройства |
упорядочения |
по убыванию толь |
|
ко |
тем, что его |
выводы перенумерованы в |
обратном |
порядке.
148 ГЛ. 3. МЕТОДЫ с л и я н и я
Устройство |
упорядочения в целом содержит |
~ |
прё' |
||||
образователей |
на |
два |
входа, |
~ |
преобразователей |
на |
|
четыре входа |
и т. д. вплоть до |
одного преобразователя |
|||||
на п входов. |
|
|
|
|
|
|
|
Оценки его быстродействия |
и сложности определяют |
||||||
ся аналогично |
оценкам |
ранее |
рассмотренного |
устрой |
|||
ства: |
|
|
|
|
|
|
|
|
t = |
-j\og2n(\og2n+ |
|
1), |
(3.96) |
||
|
7? = |
-^[(log2 n)2 + |
log2 tt]. |
(3.97) |
ГЛАВА 4
ПРОЦЕДУРЫ УПОРЯДОЧЕНИЯ С ПРЕДЕЛЬНОЙ ЭКОНОМИЕЙ ПАМЯТИ
§ 4.1. Предпосылки метода
Одной из существенных характеристик процедуры упорядочения являются требования к объемам памяти, дополнительно используемым процедурой, помимо объ емов, непосредственно занятых программой упорядоче ния и исходным упорядочиваемым массивом. Из описа ния процедур упорядочения, основанных на операторе слияния (глава 3), можно было убедиться, что в некото рых случаях дополнительные объемы памяти оказыва ются довольно значительными. В настоящей главе рас
сматриваются |
процедуры |
упорядочения, выполняемые |
при предельно |
жестких |
ограничениях, накладываемых |
на дополнительные объемы памяти.
Сформируем процедуру, использующую для переста новок элементов массива в процессе упорядочения, кро ме объема, непосредственно занятого исходным масси вом, только одну дополнительную рабочую ячейку.
Начнем, как и при рассмотрении упорядочения слия нием, с формирования «основы» такой процедуры. Как и в том случае, будем считать, что основа процедуры рас падается на несколько этапов, в каждом из которых вы полняется я/2 сравнений и обменов, устраняющих выяв ленные при сравнениях инверсии (я — размер массива). В отличие от случая упорядочения слиянием, примем условие, что статистически однородные последовательно сти, образующиеся на каждом этапе, представляют собой подмассивы. В исходном состоянии весь массив представ ляет собой один статистически однородный подмассив,