Cтраница 3
![]() |
Блок-схема подпрограммы внутренней сортировки линейного выбора с обменом ( подпрограмма SORT. [31] |
Для реализации метода используются две дополнительные ячейки: Т, в которую заносится значение текущего элемента сортируемого массива, и / МАХ-порядковый номер этого элемента. Рассмотрим блок-схему алгоритма внутренней сортировки линейного выбора с обменом ( рис. 38): предположим, что на / - м шаге алгоритма упорядочено / - - 1 предыдущих элементов. Тогда для определения / - го элемента упорядоченной последовательности выбирается максимальный элемент с номером, изменяющимся в пределах от / до NР, где NP - число элементов, подлежащих упорядочению. [32]
![]() |
Схема, допускающая хранение многоразрядного кода на одном сердечнике. [33] |
Постоянные ЗУ отличаются от обычных оперативных ЗУ с линейным выбором, описанных в § 5 - 6, тем, что в их числовых ячейках или регистрах удалены сердечники, в которых должен быть записан О. Для компенсации же нагрузки выходной обмотки магнитного ключа координатной сетки удаленные сердечники пронизываются селектирующими шинами ( шинами Z) за пределами ЗУ. [34]
Метод квадратичного выбора получил свое название потому, что число частей, на которые разбивается список, равно корню квадратному из числа элементов в списке. Для упорядочения каждой части и сравнений между частями используется линейный выбор. В литературе этот метод описывается в двух основных вариантах. [35]
Есть много различных алгоритмов сортировки и подходов к их программированию. Согласно классификации этих алгоритмов в модуле GRAF используется внутренняя сортировка линейного выбора с обменом. Внутренняя сортировка предполагает расположение всех данных в течение всего процесса в оперативной памяти ЭВМ. [36]
Подсписки квадратичного выбора можно предварительно отсортировать - упорядочить полностью до формирования вспомогательного списка или просмотра. При этом число сравнений можно сократить, применив к частям метод, более эффективный, чем линейный выбор. [37]
Память, используемая линейным выбором с подсчетом, будет включать область вывода ( так же как и при линейном выборе) для хранения окончательно упорядоченного списка. Размер области вывода отвечает тем же соображениям, что и при линейном выборе. Дополнительно должна быть обеспечена память под счетчик для каждого элемента списка. В результате действий над значениями этих счетчиков образуется множество индексов позиций для элементов в упорядоченном списке. При каждом просмотре ключ сравнивается со своими линейными преемниками. Каждый раз, когда находится больший ключ, его счетчик увеличивается на единицу. Если найденный ключ меньше или равен, то увеличивается счетчик, соответствующий большему из сравниваемых ключей. [38]
![]() |
Квадратичный выбор, разбиение на части. [39] |
Выбранный элемент ( или признак, представляющий его) пересылается во вспомогательный список. После того как все наименьшие элементы выбраны ( и заменены в их подсписках большими фиктивными величинами), к вспомогательному списку применяется линейный выбор для выбора наименьшего из меньших - наименьшего элемента всего списка, который затем пересылается в список вывода. Размер списка вывода зависит от сортировки и последующего процесса так, как об этом говорилось в связи с линейным выбором. [40]
Метод стандартного обмена похож на метод стандартного выбора с обменом. Основное различие между ними в том, что при линейном выборе с обменом число просмотров фиксировано, в то время как в стандартном обмене оно меняется и зависит от исходной последовательности данных. Если при просмотре обменов не было, то ясно, что список упорядочен и процедура может закончиться. [41]
Магнитные запоминающие устройства являются примерами общих магнитных цепей и будут использованы для иллюстрации методов построения схем. Имеются дне основные схемы запоминающих устройств. Одна из них основана на совпадении токов, а другая имеет линейный выбор. [42]
Память, используемая линейным выбором с подсчетом, будет включать область вывода ( так же как и при линейном выборе) для хранения окончательно упорядоченного списка. Размер области вывода отвечает тем же соображениям, что и при линейном выборе. Дополнительно должна быть обеспечена память под счетчик для каждого элемента списка. В результате действий над значениями этих счетчиков образуется множество индексов позиций для элементов в упорядоченном списке. При каждом просмотре ключ сравнивается со своими линейными преемниками. Каждый раз, когда находится больший ключ, его счетчик увеличивается на единицу. Если найденный ключ меньше или равен, то увеличивается счетчик, соответствующий большему из сравниваемых ключей. [43]
Выбранный элемент ( или признак, представляющий его) пересылается во вспомогательный список. После того как все наименьшие элементы выбраны ( и заменены в их подсписках большими фиктивными величинами), к вспомогательному списку применяется линейный выбор для выбора наименьшего из меньших - наименьшего элемента всего списка, который затем пересылается в список вывода. Размер списка вывода зависит от сортировки и последующего процесса так, как об этом говорилось в связи с линейным выбором. [44]
На рис. 1.4 показан исходный список. При первом просмотре содержимое первой позиции ( ключ 3) последовательно сравнивается со всеми своими линейными преемниками до обнаружения меньшего ключа, после чего содержимое LOW и SOURCE изменяется. Преобразованный список показан на рис. 1.6. Читатель наверное заметил идентичность рисунков 1.1 и 1.4, что подчеркивает аналогичность версий линейного выбора с обменом и без него. [45]