
книги из ГПНТБ / Папернов А.А. Методы упорядочения информации в цифровых системах
.pdf§ 10.1. СТАТИЧЕСКИЙ МАССИВ |
371 |
при фиксированном z имеет минимум по h0. Оптималь ное значение п0 найдем, приравнивая нулю производную
% ^ = _ 2 |
( r c p |
+ ^ r n |
y ^ + Z Z Î ! ! = 0, |
(10.23) |
|
dh0 |
- \ с р |
1 |
3 |
|
|
откуда |
|
|
|
|
|
2 ^ = 4 ( 1 |
+ — — ) « . |
(10.24) |
|||
|
|
|
3 |
7*^ |
|
Минимальная общая сложность определяется выраже нием
T7& = 2 |
( T ^ + |
YT") |
|
|
|
4(Tcp+-jTn) |
|
|
|
+ 2 T C p ( 2 + log2 n). |
(10.25) |
На рис. |
10.3 приведены зависимости общей сложности |
||
процедур |
частичного (взаимного и внутреннего) |
упоря |
дочения и поиска от числа запросов на поиск при оп тимальном разбиении массива. Зависимости получены при условиях ТП = Т С р, п= 1000 и в случае использования и для внутреннего упорядочения подмассивов, и для их взаимного упорядочения однотипных процедур типа ме тода Хиббарда. При использовании частичного внутрен него упорядочения общая сложность существенно выше (на 50—60%), чем при использовании частичного вза имного упорядочения. Для максимального показанного на рисунке значения z в случае внутреннего упорядоче ния требуется уже создание единого массива. При даль
нейшем увеличении числа запросов на |
поиск /г0 |
будет |
постепенно уменьшаться до 1 и тогда |
характеристики |
|
общей сложности данных двух методов |
сольются, так |
|
как при этом уже и для взаимного упорядочения |
будет |
требоваться организация единого упорядоченного мас
сива. В случае частичного взаимного |
упорядочения еди |
ный упорядоченный массив потребуется при |
|
z = 4 ( l + - i - b j „ , |
(10.26) |
372 ГЛ. ДО. СОВМЕСТНАЯ ОПТИМИЗАЦИЯ ПОИСКА И УПОРЯДОЧЕНИЯ
а в случае частичного |
внутреннего |
упорядочения — |
||
при |
|
|
|
|
2 1 + — |
|
log2 n — log2 |
(10.27) |
|
1 |
3 т, |
е |
||
|
ср |
|
|
В последнем случае величина z существенно меньше первой, что подтверждает большую эффективность мето да взаимного упорядочения.
Ist>ML_
22000
гоооо
18000
16000
14000
/2000
|
10000 |
|
|
ср |
|
|
|
8000\ |
|
г? = /ООО |
|
|
|
|
BODO |
|
|
|
|
|
|
2000 |
|
|
|
|
|
|
|
100 |
200 |
300 |
|
|
Рис. |
10.3. Зависимость |
Гобш/^ср |
процедур |
частичного |
(взаимного |
|
и внутреннего) упорядочения и поиска от числа запросов |
на |
поиск z |
||||
|
при оптимальном |
разбиении |
массива. |
|
|
|
|
Сравнивая описанные |
методы, |
нельзя не |
отметить |
||
также и естественную возможность |
дополнения |
частич-' |
||||
но |
упорядоченного |
массива |
новыми |
элементами |
в слу |
чае использования внутреннего упорядочения. Тогда все новые элементы объединяются в очередной свободный подмассив и в нем упорядочиваются, не требуя переме щения остальных элементов массива. Включение новых элементов при взаимном упорядочении массива сущест венно труднее.
§ 10.2. ДИНАМИЧЕСКИЙ МАССИВ |
373 |
§ 10.2. Поиск и упорядочение в динамическом
массиве
Рассмотрим некоторый динамический массив, состо ящий из п элементов. Будем считать, что этот массив упорядочен. Пусть в некоторую единицу времени посту пает z запросов на поиск элементов, у новых элементов массива и 5 сигналов об изъятии устаревших элементов.
Примем следующую организацию работы системы. Помимо основного упорядоченного массива из п эле ментов, должно существовать еще резервное поле для новых элементов массива. Каждый вновь поступающий элемент упорядочивается на этом поле с поступившими
ранее элементами методом |
вставки. |
|
Предполагая случайность массива новых элементов, |
||
определим, что сложность |
упорядочения |
такого масси |
ва из п0 элементов составляет |
|
|
Туп(п0)= |
^(ТСР + ТП). |
(10.28) |
Поиск в системе с подобной организацией должен со
стоять из двух этапов — поиска |
в |
основном массиве n |
||
и поиска в малом массиве п0. |
Учитывая, |
что объем ос |
||
новного массива n постоянен, |
а |
объем вспомогательно |
||
го массива с равной вероятностью |
может |
быть 1, 2, 3, ... |
||
п0, получаем оценку сложности |
|
поиска |
|
= zzTQV ( l o g 2 r t + ^ - I o g , ( / i o l ) ) . (10.29)
Также подлежат поиску и s устаревших элементов для того, чтобы отметить эти устаревшие элементы и в даль
нейшем удалить их из массива. Поиск этих |
элементов |
|
мы включим в общее число запросов на поиск. |
||
По окончании некоторого интервала времени, в те |
||
чение которого во вспомогательном |
массиве |
накопится |
По элементов, производится слияние |
основного массива |
|
§ |
10.2. ДИНАМИЧЕСКИЙ |
МАССИВ |
|
375 |
|||||||
Пренебрегая log 2 n 0 |
по сравнению |
с n0\og2e, |
преобразу |
|||||||||
ем полученное уравнение к виду |
|
|
|
|
||||||||
nl+± |
|
U log, е + |
log2 |
|
\ - |
4 п = |
0. |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
(10.35) |
Учитывая |
также, что е/}/ 2я |
близко к единице, |
получим |
|||||||||
|
пі + щі. |
|
4 |
а Г |
с р |
|
log2 e — 4 n = 0 , |
(10.36) |
||||
|
0 |
у |
|
тср |
+ |
тп |
|
|
|
|
|
|
откуда уже легко |
найти |
выражение |
для |
оптимального |
||||||||
значения |
По: |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 « r c p l o g 2 e \2 / _ 2 _ \ 2 |
2 a r c p l o g 2 e _г |
|||||||||
|
|
Tcp |
+ Tn |
I \ у J |
|
Tcp + Tn |
у |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
(10.37) |
при а=\, |
Тср = Тп |
получаем |
|
|
|
|
|
|||||
|
" о = |
Y4я-2,07 |
|
|
|
(-J-)2-2,07^-. |
(10.38) |
|||||
Из (10.37) |
можно заключить, что я 0 |
должно быть мень |
||||||||||
ше единицы при выполнении |
|
условия |
|
|
|
|||||||
|
|
_ ^ 4 а г с р |
l o g , e > 4 w |
|
|
( 1 0 3 9 ) |
||||||
|
|
|
у |
тср |
+ |
т п |
|
|
|
|
||
или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
>• " ^ с р ^ |
|
|
|
(10.40) |
||||
При а = 1 и Г с р |
— Т п получаем |
|
|
|
|
|||||||
|
|
|
г/*/> |
1,39 л. |
|
|
|
(10.41) |
При выполнении этого условия нецелесообразно иметь дополнительный массив, а необходимо проводить объеди нение сразу же при появлении очередного нового элемента.
378 ПРИЛОЖЕНИЕ
В таблице приведены характеристики следующих методов, опи санных в основном тексте книги:
1. Слияние по двум направлениям, то есть слияние с объедине
нием |
на каждом |
этапе |
пар |
подмассивов |
в один |
подмассив (блок- |
|||
схема на рис. 3.9). |
|
|
|
|
|
|
|
||
2. |
Слияние |
по |
четырем |
направлениям |
(блок-схема |
на рис. 3.7). |
|||
3. |
Вставка |
(блок-схема |
на рис. 3.18). |
|
|
|
|||
4. |
Метод Шелла |
с |
чередованием некратных |
шагов |
(блок-схема |
||||
на рис. 4.7). |
|
|
|
|
|
|
|
|
|
5. |
Метод разделения Хиббарда со случайным выбором опорного |
||||||||
элемента (блок-схема |
на |
рис. 5.9). |
|
|
|
6.Метод разделения с выбором опорного элемента из группы, состоящей из трех элементов.
7.Метод поразрядного упорядочения, начиная со старших раз
рядов |
(блок-схема |
на рис. 6.2). |
|
|
8. |
Метод поразрядного упорядочения по |
группе из 5-я разрядов, |
||
начиная с младших, в сочетании с методом |
вставки. |
|||
Д л я |
каждого |
из упомянутых методов |
в таблице собраны сле |
|
дующие |
характеристики: |
|
—оценка сложности метода при упорядочении случайного мас сива в зависимости от его размера, времени .выполнения основных операций и некоторых других параметров;
—оценки требуемых дополнительных резервов памяти;
—некоторые дополнительные сведения, существенные для ха рактеристики отдельных методов упорядочения.
Д л я каждого из упомянутых методов была составлена реали зующая его программа в кодах трехадресной цифровой вычислитель
ной машины |
типа БЭСМ-4. В таблице приведены следующие дан |
|||||
ные об этих |
программах: |
|
|
|
|
|
— |
объем |
рабочей программы |
по |
количеству |
команд |
и констант |
в ней; |
|
|
|
|
|
|
— |
экспериментальные данные |
о |
количестве |
команд, |
отнесенных |
к одному элементу |
массива, |
которые пришлось выполнить в про |
|||
цессе упорядочения случайных массивов различного |
размера. |
||||
Цель экспериментального исследования состояла в уточнении |
|||||
фактической |
сложности этих |
методов. Теоретические оценки, |
при |
||
веденные в тексте книги и в |
таблице, учитывают основные операции, |
||||
выполняемые |
в |
процессе |
упорядочения — сравнения |
и |
пере |
сылки. Фактически же на сложность методов влияют также и слу жебные операции, в частности, операции по формированию адресов, проверки условий выхода из цикла и др. Экспериментальная про верка позволяет учесть и ряд второстепенных факторов, не охваты-
ПРИЛОЖЕНИЕ |
379 |
ваемых теоретическим анализом. Правда, приводимые в таблице дан
ные |
относятся |
к конкретной |
цифровой |
машине с |
конкретным |
соста |
|
вом |
операций. |
Однако, можно предполагать, что эти |
данные |
отра |
|||
жают порядок |
сложности |
отдельных |
методов |
и их |
соотношения |
||
друг |
с другом |
и для цифровых машин |
с другой |
системой команд. |
Во всех случаях оперативная память объемом в 4096 ячеек рас пределялась между программой упорядочения, исходными данными, константами и рабочими ячейками. Поэтому те методы упорядоче ния, которые требуют больших резервных объемов памяти, прове
рялись на массивах |
в 10, 25, 200, 500, |
1075, |
1575 слов, |
а те, которые |
|||
не |
требуют больших |
резервных объемов |
памяти, — |
дополнительно |
|||
на |
массивах в 2500 и 3200 слов. Массивы |
одинакового |
размера, упо |
||||
рядочивавшиеся разными |
методами, |
имели |
не только одинаковый |
||||
размер, но и одинаковый |
исходный состав. |
|
|
|
ЛИТЕРАТУРА
1. А д е л ь с о н-В е л ь с к и й Г. М., Л а н д и с |
Е. |
М., |
Один алго |
ритм организации информации, ДАН СССР |
146, |
№ |
2, 1962. |
2.Алгоритмический язык АЛГОЛ 60. Пересмотренное сообщение, перев. с англ., «Мир», 1965.
3.А л е к с е е в В. Е., О некоторых алгоритмах сортировки с мини
мальной памятью, Кибернетика, № 5, 1969.
4. |
А л ф е р о в а 3. |
В., |
В о л о в и ч |
М. А., |
Сортировка |
информации |
||||||
|
с помощью электоонных вычислительных машин, «Статистика», |
|||||||||||
|
1965. |
|
|
|
|
|
|
|
|
|
|
|
5. |
Б е л о н о г о в Г. Г., |
К о т о в |
Р. |
Г., |
Автоматизированные инфор |
|||||||
|
мационно-поисковые |
системы, |
«Советское радио», |
1968. |
|
|||||||
6. |
Б е р ж К. Теория |
графов |
и ее |
применения, перев. с |
франц., |
И Л , |
||||||
|
1962. |
|
|
|
|
|
|
|
|
|
|
|
7. |
Б у д ь к о |
Н. С , |
К у д и н |
Н. И., |
Г о р о х о в |
С. А., |
Автоматизи |
|||||
|
рованная |
информационно-поисковая |
система |
для |
источников |
|||||||
|
научно-технической информации по радиоэлектронике «Сетка-3». |
|||||||||||
|
Научно-техническая |
информация, |
№ |
10, |
1966. |
|
|
|
||||
8. |
В о л к о в |
Б. Г., С е л е т к о в |
С. Н., |
Применение переключатель |
||||||||
|
ных функций для поиска информации |
методом |
позиционных |
|||||||||
|
матриц, Сб. «Цифровая вычислительная техника и программиро |
|||||||||||
|
вание», № 4 «Советское радио», |
1968. |
|
|
|
|
||||||
9. |
Г л а д у н |
В. П., |
Организация |
памяти |
для поиска |
и записи |
по |
|||||
|
ключу, Кибернетика, |
№ 4, |
1965. |
|
|
|
|
|
|
10.Г л а д у н В. П., Сортировка в памяти типа «матричный каталог», Кибернетика, № 5, 1965.
11. |
Г л а д у н |
В. П., |
Сортировка по |
шкале признаков, |
Кибернетика, |
|||||||||||
|
№ 4, |
1967. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12. |
Г л а д у н |
В. |
П., К о б ц е в а |
С. |
|
А., Методы |
выполнения |
обра |
||||||||
|
щений по признакам в памяти произвольного доступа, Киберне |
|||||||||||||||
|
тика, |
№ |
2, |
1967. |
|
|
|
|
|
|
|
|
|
|
|
|
13. |
Г л а д у н |
В. П., |
Р а б и н о в и ч |
3. |
Л., Быстродействующие |
алго |
||||||||||
|
ритмы |
сортировки |
в |
оперативной |
памяти, Кибернетика, |
№ |
1, |
|||||||||
|
1965. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14. |
Г л у ш к о в |
В. М., |
Г л а д у н |
В. |
|
П., Л о з и н с к и й |
Л. |
С , |
П о - |
|||||||
|
г р е б и н с к и й |
С. |
Б., |
Обработка |
|
информационных |
массивов |
в |
||||||||
|
автоматизированных |
|
системах |
|
управления, |
«Наукова |
думка», |
|||||||||
|
Киев, |
1970. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15. |
Г н е д е н к о |
Б. |
В., |
Курс теории |
вероятностей, |
Физматгиз, |
1961. |
16.3 у б о в В С , К вопросу о классификации методов внутренней сортировки, Сб. «Цифровая вычислительная техника и програм мирование», вып. 4, «Советское радио», 1968.