ЧАСТЬ 1. МЕТОДЫ АДРЕСАЦИИ
ВВЕДЕНИЕ
Одной из проблем при создании информационных систем является работа со структурированными данными, которые чаще всего являются линейными списками упорядоченным множеством элементов, порядковые номера которых определяют местоположение элемента в списке. Элементы списка имеют структуру они состоят из конечного множества полей, каждое из которых имеет определенный смысл, например, фамилии, адреса и т.д. Для таких списков важна задача адресации элементов списков определение адреса элемента списка по одному из его полей или по совокупному набору полей. Такие поля называются
Не нашли нужную работу? Закажи реферат, курсовую, диплом на заказ
ключевыми (или ключами) (в простейшем случае ключом, например, может быть номер зачетной книжки студента).
Иногда бывает необходимо объединить несколько полей, чтобы образовать уникальный ключ, называемый в этом случае сцепленным ключом: например, ключ, идентифицирующий студента в институте, является комбинацией номера группы, фамилии, имени и отчества студента (есть случаи, когда в одной группе учатся студенты с одинаковыми фамилиями и именами).
Кроме простого и сцепленного, ключ может быть первичным определять максимум один элемент в списке или вторичным определять множество (в общем случае не одноэлементное) элементов в списке. Например, фамилия студента в учебной группе, как правило, является первичным ключом, а пол студента вторичный ключ, поскольку одному значению этого ключа (мужской или женский) соответствует, в общем случае, группа студентов.
Основную проблему при адресации элементов списков можно сформулировать следующим образом: как по первичному ключу определить местоположение элемента с данным ключом (задача поиска)? Существует несколько различных способов адресации. Они рассматриваются далее.
1. Теоретическая часть
1.1. Последовательное сканирование списка
Наиболее простым способом локализации элемента списка является сканирование списка с проверкой ключа каждого элемента. Этот способ, однако, требует слишком много времени для большинства применений. Он может быть эффективен только при пакетной обработке последовательного файла, находящегося, например, на магнитной ленте, когда каждая запись все равно должна быть прочитана.
1. 2. Блочный поиск
Если элементы упорядочены по ключу, то при сканировании списка не требуется чтение каждого элемента. Компьютер мог бы, например, просматривать каждый n-ный элемент в последовательности возрастания ключей. При нахождении элемента с ключом, большим, чем ключ, используемый при поиске, просматриваются последние n-1 элементов, которые были пропущены. Этот способ называется блочным поиском: элементы группируются в блоки, и каждый блок проверяется по одному разу до тех пор, пока ни будет найден нужный блок. Вычисление оптимального для блочного поиска размера блока выполняется следующим образом: в списке, содержащем N элементов, число просмотренных элементов минимально при длине блока, равной N. При этом в среднем анализируется N элементов.
1.3. Двоичный поиск
При двоичном поиске рассматривается элемент, находящийся в середине области, в которой выполняется поиск, и его ключ сравнивается с поисковым ключом. Затем поисковая область делится пополам, и процесс повторяется. При этом, если N велико, то в среднем будет просмотрено примерно log2N-1 элементов. Это число меньше, чем число просмотров для случая блочного поиска.
1.4. Индексно-последовательная организация
В общем случае сканирование (последовательный поиск) в списках для нахождения в них элемента является процессом, требующим много времени, если он выполняется над всем списком. Однако его можно использовать для точной локализации элемента в небольшой области, если эта область найдена некоторым другим способом.
Если список упорядочен по ключам, то обычно при адресации используется таблица, называемая индексом. При обращении к таблице задается ключ искомого элемента, а результатом процедуры поиска в таблице является относительный или абсолютный адрес элемента.
Индекс можно определить как таблицу, с которой связана процедура, воспринимающая на входе информацию о некоторых значениях атрибутов и выдающая на выходе информацию,
скачать реферат1234...последняя
Рефераты и/или содержимое рефератов предназначено исключительно для ознакомления, без целей коммерческого использования. Все права в отношении рефератов и/или содержимого рефератов принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием рефератов и/или содержимого рефератов.