Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Папернов А.А. Методы упорядочения информации в цифровых системах

.pdf
Скачиваний:
16
Добавлен:
25.10.2023
Размер:
13 Mб
Скачать

140

ГЛ. 3.

МЕТОДЫ

слияния

что

в вычислительной

машине

существуют групповые

операции обмена между устройством упорядочения и памятью. Оценим выгоды использования такого устрой­ ства в процедурах упорядочения различных типов.

Для процедур упорядочения без резерва памяти наи­ более целесообразным в настоящее время представляет­ ся использование подобного устройства для повышения эффективности процедур упорядочения, построенных аналогично методу вставки и методу слияния, не требу­ ющему резервных объемов памяти (п. 3.5.4). В первом случае на каждом шаге осуществляется упорядочение группы из а старших элементов, оставшихся в процессо­

ре от предыдущего шага упорядочения, с новой

группой

в а элементов из массива. После однократного

участия

в упорядочении всех элементов массива будет образова­ на группа из а старших элементов всего массива, кото­ рую следует зафиксировать на старших позициях масси­

ва

(при

упорядочении

в

 

порядке

возрастания).

Всего

при

этом

выполняется

і

 

1

шагов

упорядочения

для

= п/а групп элементов

со сложностью

этапа, определяе­

мойі

выражением

 

 

 

 

 

 

 

 

(і-\)(Ту

 

+

о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)

Когда подмассив состоит из двух групп по а элемен­

тов каждая, то образование

объединенного массива из

элементов имеет сложность

Ту~{-АТоб (вызов,

отсылка

и упорядочение двух групп элементов). Поэтому

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 сравнений и обменов, устраняющих выяв­ ленные при сравнениях инверсии (я — размер массива). В отличие от случая упорядочения слиянием, примем условие, что статистически однородные последовательно­ сти, образующиеся на каждом этапе, представляют собой подмассивы. В исходном состоянии весь массив представ­ ляет собой один статистически однородный подмассив,

Соседние файлы в папке книги из ГПНТБ