Файл: Зубов В.С. Математическое обеспечение цифровых вычислительных машин и систем учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.07.2024
Просмотров: 93
Скачиваний: 0
-71-
Число ' сопоставлений
или отображений в
расчёте на одну запись
15
|
|
|
сопоставительный метод дай Л= 8192 |
|||||||
|
t - |
|
|
|
|
|
|
|
|
|
/о |
|
|
|
сопоставительный метод даш Г?=1024 |
||||||
|
|
|
|
сопоставительный метод дои П=256 |
||||||
|
|
|
|
I |
I |
|
|
|
|
|
-5 |
|
|
|
|
1 |
отобразительный метод |
||||
|
|
|
|
|
||||||
|
|
|
|
|
-------------1 |
для |
|
40 |
||
|
|
|
|
|
|
|
||||
отобразительный метод для /v=b i |
Метод для |
N=4и |
||||||||
I |
г |
з |
5 |
6 |
7 |
3 |
to |
It |
12 |
13 |
2 |
4 |
в |
16 32. |
6* |
tea |
256 |
512 1024 |
2048 |
4026 3192 R |
Рис.6 . Зависимость от параметров упорядочения числа сопоставлений при оптимальном сопоставительном упо рядочении и числа отображений при упорядочении о т о - бразительным алгоритмом внутреннего упорядочения последовательности.
Число сопоставлений |
или |
отображений в расчёте на одну запись |
|
J L I ____________ |
______ _____________________ |
Тсопоставительный метод для п = 8192Г
__4е ____________________ _______________
ю |
< |
сопоставительный метод для |
п =“ 1024 * |
|||||||
I |
i J |
|
|
|
|
|
|
|
|
|
|
U L |
|
отобразительный |
метод для всех |
|
|||||
|
I 1 |
|
|
s |
|
|
|
/V>14,333 |
|
|
|
|
|
|
|
|
|
|
|
|
|
отобразительный--------- п— г* |
|
|
|
|
|
|
||||
|
метод для /V =8 |
|
9 |
/ о |
и |
>г у |
|
|||
|
|
|
|
|
|
|
||||
|
16 |
32 |
64 |
/23 |
256 |
5/2 |
/024 |
2048 |
4096 8/92 |
# |
Р и с .7 . Оценки числа отображений при оптимальном упорядочении набора из 8192 записей и числа сопо ставлений при оптималгаом сопоставительном упоря дочения того же набора
- 72-
затраты при упорядочении по сопоставительному и отобрази-
тельному методам по разному зависят от входных параметров упорядочения, описывающих упорядочиваемые данные и ресурсы памяти. Характер рассмотренных зависимостей говорит о том,
что независимо отвозможных изменений сложности реализации вышеуказанных основных действий по упорядочению всегда найдутся такие значения параметров, что более производи тельным окажется произвольно выбранный нами из двух рас сматриваемых метод. Иначе говоря, в многомерном простран стве параметров упорядочения имеется сечение, разделящее область, где наиболее быстродействующим является отобрази-
тельный метод (в оптимальной его реализации), и область,
где наиболее быстродействующим является сопоставительный метод (в оптимальной его реализации). Практический интерес *
представляет положение этого сечения по отношению к облас ти наиболее вероятных параметров упорядочения. Выяснение этого положения должно производиться при рассмотрении ре ализации алгоритмов упорядочения на машинно-ориентирован ном уровне. При этом достаточно рассмотреть временные ха рактеристики сравнительно небольших по объёму программных блоков, реализующих основные действия по упорядочению. Сре днее число последних оценено с приемлемой для практических целей точностью для всех известных фундаментальных алгорит мов упорядочения.
§6. Ассоциативные алгоритмы упорядочения
Впроцессе упорядочения, как явствует из предыдущего
\
рассмотрения, возникают ассоциации (подпоследовательности)
записей, которые обычно представлены списком типа А,Б или В. Эти ассоциации имеют преходящее значение, являясь мате
- 7 3 -
риалом для образования новых ассоциаций, а в конечном ито ге - правильной последовательности всех записей.
Алгоритмы, в которых подпоследовательности записей
получают явное выражение с помощью средств ассоциативного
программирования (например, списков типа Б и В ), будем
именовать ассоциативными. Для них характерны следующие особенности:
а) Положение в памяти записей исходного набора оста ётся неизменным, поскольку получаемая правильная последо
вательность записей задана не расположением записей, а
иными средствами. Иногда факт существования двух последо вательностей записей - правЛшной последовательности и списка типа А, представляющего исходный набор записей,-
оказывается существенным для пользователя.
б) Затраты на формирование последовательности записей
в процессе упорядочения, а, следовательно, и общие затраты
времени на упорядочение не зависят от размеров записей, в
отличив от случая, когда их последовательность представле на списком типа А.
в) Ассоциативные алгоритмы позволяют более гибко испо
льзовать память для размещения набора записей, |
поскольку |
||
для их применения не имеет особого значения то , |
представля |
||
ет набор записей единый список |
типа А или нет. |
|
|
г) В силу того, что |
размер |
записей обычно |
значительно |
превышает размер адреса |
в машинной команде, применение ас |
социативного программирования позволяет при заданных ресур сах памяти, если это требуется, образовывать большее число правильных последовательностей, построенных для различных управляющих слов, по сравнению с использованием неассоциа
- 7 4 -
тивных алгоритмов.
Промежуточные последовательности записей при упорядо
чении ассоциативными алгоритмами представлены ассоциатив
ными структурами |
данных, |
которые |
могут |
иметь самый разно |
||
образный вид (см . |
р и с.8 ). |
|
|
|
|
|
В раде случаев |
оказывается удобным |
отдельное |
располо |
|||
жение собственной |
и |
служебной информации |
(адресов |
связи и |
||
п р .) . Такое расположение |
очевидно |
для оглавления, |
но и ад |
реса связи цепных списков могут быть выделены в отдельный участок памяти. При этом принадлежность какого-либо адреса связи определённой записи определяется подразумеваемым со ответствием (например, по номеру позиции записи и номеру позиции, занимаемой адресом связи в выделенном участке) или прямым указанием адреса записи в элементе ассоциативной структуры, помимо уже имеющегося в нём адреса связи.
В некоторых случаях использования ассоциативных алго ритмов может потребоваться переход от ассоциативного спосо ба задания правильной последовательности к её заданию спис ком типа А. Если, например, она предназначается для информа ционного поиска, то неудобным является её представление од носвязным цепным списком, исключающее прямой доступ к отде льным её записям; кроме того, в несовершенных ЭВМ не может осуществляться передача данных между уровнями памяти в по следовательности, заданной цепным списком или. оглавлением;
наконец, пользователь может попросту не владеть навыками ассоциативного программирования, необходимыми для последую щего использования в его задаче такой последовательности.
Изменение способа её выражения может быть выполнено с помощью операторов, рассмотренных в § 6 гл .1 .
- 7 5 -
i'ОДСПИСОК, о
соответст-/-
вующий на-/ чальному / внутренне/ ,
упорядо- |
| р Л Г ?~ 1 Т Т 1 y o l - - - Г7Л |
|
сегменту |
и с х о д н ы й |
н а б о р |
|
меньшие адреса |
позиций |
|
подсписок, |
|
соответст |
|
вующий по |
|
следнему |
|
внутренне |
П П Гз~| |
порядоче- |
нному |
|
з а п и о е й сегменту |
|
большие |
адреса |
В) с п и с о к |
|
ф и к с а т о р о в н а ч а л |
(типа А) |
|||
\ф и к с а т о р \ |
- \ФИКСАТОр\- + ~ |
~ + \<РИКСАТО)>\- |
- \Ч>ИКСАТОР\ |
|||
c g i; |
d |
5 |
5 |
L t?-J-1 |
||
4dZ ZiO - 1 |
||||||
|
d ll!;О - ] |
|||||
ЖГ~ПГ й |
« с ж з З |
* Г аэГ~М * |
ж Г 17 |
|||
цепные списки |
|
записей, |
соответствующие внутренне |
|||
|
|
|
упорядоченным сегментам |
|
||
Z) |
|
из двух финсаторов |
|
|||
Список типа А |
|
Рис.8. Примеры промежуточных ассоциативных структур: |
|
|
а) - при упорядочении по алгоритму В.Н.Фалька; б ),в ) |
- |
|
при упорядочении ассоциативными алгоритмами прямого, |
а |
|
г) - естественного слияния; х означает признак конца |
|
|
подсписка; и |
- признак конца цепного списка. Адреса |
|
связи показаны |
стрелками, числа означают коды ключей |
|
записей. |
|
|
-7 6 -
§7. Классификация алгоритмов упорядочения данных Классификация представляет собой научную систематизацию
алгоритмов и имеет как теоретическое, так и практическое зна
чение. Классификация алгоритмов упорядочения представляет |
|
сложную проблему, как и всякая классификация реальных объек |
|
тов. Существуют десятки алгоритмов упорядочения. В принципе |
|
их количество может быть, например, удвоено. Однако |
количе |
ство уже описанных алгоритмов не соответствует соображениям |
|
практической необходимости, поскольку лишь некоторые |
из-них |
представляют композиции наиболее оптимальных .для выбранного |
|
принципа упорядочения операторов, а сами принципы |
далеко |
не равноценны. Процесс классификации требует выявления общ |
ности и различий алгоритмов упорядочения, я начинать его сле дует с различий наиболее абстрактного плана: в первую очередь алгоритмы следует различать по методу упорядочения, сопоста вительному или отобразительному. Тем самым выделяются 2 вет ви алгоритмов, для каждой из которых характерны специфические
дейотвия, лежащие в основе упорядочения. Эта специфика опре деляет качественно различный характер зависимости числа ос новных действий в алгоритмах от параметров упорядочения.
Наиболее весомыми различиями логической схемы алгоритмов
в каждой ветви являются различия по характеру исходных и воз никающих в процессе упорядочения (промежуточных) структур
упорядочиваемых данных, различия динамйеи этих структур. В |
|
|
самой общей формулировке по этому принципу алгоритмы могут |
|
|
быть разделены на группу алгоритмов, использующих структуры, |
|
|
состоящие |
из многих подпоследовательностей, число которых |
|
монотонно |
сокращается или возрастает (алгоритмы упорядоче |
|
ния слиянием, алгоритмы 'Хиббарда, Шелла и т . д . ) , и группу |
_ |