- •Информация
- •Свойства информации
- •Преобразования сигнала
- •Системы счисления
- •Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.
- •Перевод из двоичной системы счисления в шестнадцатеричную:
- •Правила вычитания
- •Правила умножения
- •Кодирование сигнала
- •Сложение по модулю
- •Ascii-коды
- •Коды Грея
- •Коды, учитывающие частоту символов
- •Код Штибица
- •Метод Вижинера
- •Метод Шеннона-Фано
- •Метод Хаффмена
- •Декодирование эффективных кодов
- •Методы эффективного кодирования словарей
- •Кодовое расстояние и корректирующая способность кода
- •Обнаружение ошибки
- •Коды, исправляющие ошибки
- •Комбинаторная мера
- •Аддитивная мера
- •Статистический подход к измерению информации
- •Полезность информации
- •Истинность информации
- •Виды современных компьютеров
- •Персональные компьютеры
- •Устройство управления
- •Арифметико-логическое устройство
- •Формы представления вещественных чисел
- •Коды представления числовых данных в алу
- •Сложение вещественных чисел
- •Поскольку старший числовой разряд мантиссы равен 0, она требует нормализации. Для этого:
- •Офисные пакеты
- •Настольные издательские системы
- •Системы автоматизации проектирования (сапр)
- •Инструментарий технологии программирования
- •Первое поколение эвм
- •Второе поколение эвм
- •Третье поколение эвм
- •Четвертое поколение эвм
- •Технология проектирования программ
- •Формализация задачи
- •Структурно-стилизованный способ
- •Операторный язык
- •Команда комментарии
- •Методы проектирования алгоритмов
- •Модуль Ввод и размещение
- •Модуль Ввод и анализ
- •Модуль Упорядочение
- •Модуль Определение
- •Лексический анализ
- •Синтаксический анализ
- •Семантический анализ
- •Генерация промежуточного кода
- •Оптимизация промежуточного кода
- •Компоновка
- •Выполнение и тестирование программы
- •Эволюция использования компьютеров. Проект эвм пятого поколения
- •Структура информационного процесса
- •Сбор информации
- •Первичное восприятие информации
- •Методы классификации
- •Иерархическая классификация
- •Фасетная классификация
- •Распознавание и кодирование объектов
- •Регистрация информации
- •Запись информации оператором
- •Контроль правильности записи данных
- •Первичное восприятие и измерение информации
- •Анализ результатов первичного восприятия и измерения
- •Распознавание символов
- •Восприятие информации клавиатурой
- •Первичное восприятие и измерение
- •Компьютерные сети
- •Топология сетей
- •Методы передачи данных в сетях
- •Организация обмена информацией в сети
- •Обработка информации
- •Хранение информации
- •Операции над данными
- •Линейные списки
- •Блочный способ
- •Двоичный способ
- •Индексно-последовательный способ
- •Индексно-произвольный способ
- •Размещение элементов в упорядоченном списке
- •Исходный список представлен таблицей 11:
- •Рандомизация
- •Фамилия (ключ) Числовое значение ключа
- •3) Формирование реальных номеров бакетов. Для определения константы с выполним следующие вычисления:
- •Метод квадратов. Распределение элементов по бакетам показано в таблице 20:
- •Сдвиг разрядов. Распределение элементов по бакетам показано в таблице 21:
- •Метод складывания. Распределение элементов по бакетам показано в таблице 22:
- •Оптимизированные цепочки элементов
- •Инвертированные списки
- •Иерархические структуры
- •Множественные ссылки на порожденные элементы
- •Ссылки на подобные и порожденные элементы
- •Кольцевые структуры
- •Справочники
- •Битовые отображения
- •Сетевые структуры
- •Множественные ссылки на порожденные элементы
- •Кольцевые структуры
- •Справочники
- •Битовые отображения
- •Жидкокристаллические мониторы
- •Плазменные мониторы
- •Технология вывода изображений на мониторы, использующие элт
- •Принципы организации текстовых видеорежимов
- •Принципы организации графических видеорежимов
- •Манипуляторы курсора
- •Механическая мышь
- •Устройства вывода на бумажный носитель
- •Матричные принтеры
- •Струйная технология
- •Термическая технология
- •Электрографическая технология
- •Технология формирования цвета
Двоичный способ
Элементы линейного списка упорядочены по первичному ключу. Список последовательно делится на части, уменьшая пространство поиска каждый раз вдвое.
Рассмотрим вначале, как выполняется просмотр полей элемента.
Пример 5. Пусть требуется просмотреть адрес студента по фамилии Скворцов в списке из таблицы 3, т.е. qпросмотр = (Фамилия = Скворцов, Домашний адрес), где Кдоступ = Скворцов. Задача решается следующим образом:
список виртуально делится пополам: «средним» элементом оказывается элемент, имеющий ключ Соколов;
ключ доступа сравнивается с ключевым полем «среднего» элемента: Соколов = Скворцов;
поскольку ключи не равны, определяется, в какой из полученных двух половин списка продолжать поиск. Для этого проверяется условие: Соколов < Скворцов;
условие выполняется, поэтому поиск продолжается в первой половине, т.е. исходный список уменьшился до размеров таблицы 4:
Таблица 4
№ п/п |
Фамилия |
Имя |
Отчество |
Номер зачетной книжки |
Домашний адрес |
1 |
Скворцов |
Олег |
Иванович |
02544 |
пр. Мира, 45 - 3 |
2 |
Соколов |
Юрий |
Кузьмич |
01278 |
ул. Леонова, 23 - 98 |
этот новый список делится на две части: «средним» элементом оказывается элемент, имеющий ключ Скворцов;
ключ доступа сравнивается с ключевым полем «среднего» элемента: Скворцов = Скворцов;
поскольку условие выполняется, выводится адрес: пр. Мира, 45 – 3; алгоритм заканчивает работу.
Пример 6. Пусть надо просмотреть адрес студента по фамилии Сидоров, т.е. qпросмотр = (Фамилия = Сидоров, Домашний адрес), где Кдоступ = Сидоров.
Первые пять шагов решения задачи совпадают с предыдущим примером. Затем выполняются следующие шаги:
ключ доступа сравнивается с ключевым полем «среднего» элемента: Скворцов = Сидоров;
поскольку условие не выполняется, определяется, в какой из полученных двух половин списка продолжать поиск. Для этого проверяется условие: Скворцов > Сидоров;
условие выполняется, поэтому делается попытка продолжить поиск в «верхней» части списка. Однако элемент с ключом Кэ = Скворцов является единственным элементом в этой части, поэтому выдается диагностическое сообщение об отсутствии искомого элемента в списке; алгоритм заканчивает работу.
Задача добавления нового элемента решается аналогично способу, рассмотренному ранее для упорядоченного списка.
Индексно-последовательный способ
Линейный список упорядочивается по первичному ключу. Аналогично блочному методу доступа, он делится на виртуальные блоки размером √N. Затем ключевые поля последних элементов блоков вместе с порядковыми номерами этих элементов в списке включаются в дополнительные списки, которые называются индексами. Таким образом, для списка из таблицы 5 (далее – основного списка):
Таблица 5
№ п/п |
Фамилия |
Имя |
Отчество |
Номер зачетной книжки |
Домашний адрес |
1 |
Скворцов |
Олег |
Иванович |
02544 |
пр. Мира, 45 - 3 |
2 |
Соколов |
Юрий |
Кузьмич |
01278 |
ул. Леонова, 23 - 98 |
3 |
Строков |
Иван |
Иванович |
02343 |
ул. Красная, 9 - 2 |
4 |
Супруненко |
Виктор |
Егорович |
02347 |
Каштановая аллея, 23 - 5 |
будет построен индекс, представленный в таблице 6:
Таблица 6
№ п/п |
Фамилия |
№ п/п в основном списке |
1 |
Соколов |
2 |
2 |
Супруненко |
4 |
Поле № п/п в основном списке является полем со ссылками на некоторые элементы другого списка. В дальнейшем подобные поля будем называть Ссылкой. С их помощью поддерживается связь элементов одних таблиц с элементами других таблиц, а также связь между элементами одной и той же таблицы, которая образует цепочки (цепи) элементов.
При поиске по ключу Кдоступ вначале по индексу определяется блок, в котором может находиться искомый элемент. Затем выполняется обращение к этому блоку в основном списке и, как правило, методом последовательного сканирования, просматриваются элементы блока. Принципиальное отличие этого метода от блочного состоит в том, что при небольшом размере индекса он может быть размещен целиком в основной памяти компьютера на время выявления требуемого блока. Поскольку размер основного списка в общем случае достаточно велик, такая оперативная его обработка либо невозможна, либо затруднительна. Следует отметить, что индекс является в свою очередь линейным списком, по которому может быть организован любой способ доступа из рассмотренных ранее.
Пример 7. Пусть в основном списке таблицы 5 надо просмотреть адрес студента по фамилии Скворцов, т.е. qпросмотр = (Фамилия = Скворцов, Домашний адрес), где Кдоступ = Скворцов. Задача решается следующим образом:
выбирается первый элемент в индексе;
его ключевое поле сравнивается с искомым: Соколов = Скворцов;
поскольку условие не выполняется, проверяется, возможно ли нахождение искомого элемента в текущем, первом, блоке. Для этого проверяется условие: Соколов > Скворцов;
условие выполняется, поэтому из соседнего поля индекса выбирается ссылка на последний элемент первого блока в основном списке – это 2;
по этому номеру выполняется обращение к предыдущему, т.е. первому, элементу основного списка;
ключевое поле этого элемента сравнивается с искомым ключом: Скворцов = Скворцов;
поскольку ключевые поля равны, выводится адрес: пр. Мира, 45 – 3; алгоритм заканчивает работу.
Добавление нового элемента выполняется способом, аналогичным рассмотренным ранее, за исключением того, что модифицируется также и индекс. А поскольку индекс есть также упорядоченный по ключу линейный список, то и к его пополнению пригодны способы пополнения линейных списков.
