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