Студопедия — Лабораторная работа № 5. Программирование алгоритмов ускоренного поиска информации
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа № 5. Программирование алгоритмов ускоренного поиска информации






 

Цель работы: Приобретение навыков реализации алгоритмов программного поиска в информационных массивах.

 

Краткие теоретические сведения

При выполнении любого рода вычислений часто требуется решать задачу поиска, заключающуюся в решении вопроса о соответствии данных, содержащихся в некоторой записи информационного массива, установленному критерию выдачи. Запрос на поиск формализуется заданием аргумента поиска. Поиск записи с определенным признаком называется одноаспектным; если аргумент поиска представляет собой перечень признаков, поиск является многоаспектным. Виды информационного поиска:

Поиск по совпадению. Аргумент содержит наименование одного или нескольких признаков. В процессе поиска из информационного массива выделяют записи, значения полей с наименованиями из аргумента поиска которых равны значениям полей из аргумента поиска.

Поиск по интервалу. Аргумент содержит имена одного или нескольких признаков и пределы изменения значений этих признаков. В процессе поиска из информационного массива выделяется подмножество записей, значения полей из аргумента поиска которых попадают в интервал элемента поиска.

Поиск по выражению. Аргумент представляет собой арифметическое или теоретико-множественное выражение или формулу булевой алгебры. Операндами являются имена признака. В процессе поиска выполняются необходимые операции. Результат будет определять результативность поиска. Используемые при таком поиске критерии выдачи называются логическими.

Различают последовательный и ускоренный поиск. Блочный и двоичный методы ускоренного поиска применяют только для упорядоченных информационных массивов с записями фиксированной длины, находящихся в оперативной памяти. Поиск по двоичному дереву может применяться к массивам с записями переменной длины.

Метод последовательного перебора. Заключается в последовательном просмотре информационного массива и сравнении каждого элемента массива с элементом поиска. Среднее число обращений для информационного массива длины N – N/2, в худшем случае будет осуществлено N обращений. Может применяться для неупорядоченных массивов данных.

Двоичный поиск. Текущий элемент сравнивается с аргументом поиска. Если значение аргумента поиска меньше текущего элемента, исходной считается последовательность от первого элемента до элемента с номером N/2, иначе если значение аргумента поиска больше текущего элемента – последовательность от элемента с номером N/2 до N. В целом, осуществляется последовательное деление пополам интервала поиска до тех пор, пока не будет найден искомый элемент или длина последовательности не станет равной единице.

Блочный поиск. Исходная последовательность разбивается на блоки. Поиск осуществляется за два просмотра. Во время первого просмотра аргумент поиска сравнивается со значениями последних записей блоков. Если не будет получено значение, превосходящее аргумент поиска, результат поиска – отрицательный, иначе осуществляется второй просмотр, который проводится в найденном блоке в направлении от последней к первой записи в блоке. Практика показывает, что Ö N является лучшим количеством блоков для N записей. В среднем требуется Ö N сравнений, в худшем случае – 2Ö N сравнений.

 

Поиск по двоичному дереву. Осуществляется в соответствии с принципами, по которым построено дерево поиска. Первое обращение производится в корень. Если текущий элемент (из узла дерева, в начале – из корня) меньше аргумента, следующим будет рассматриваться правое поддерево; если текущий элемент больше аргумента, следующим будет рассматриваться левое поддерево; если при попытке осуществить переход по левой или правой обнаруживается, что ссылка отсутствует, результат поиска является отрицательным. Наименьшее число сравнений, требующееся при поиске в двоичном сбалансированном дереве, log2N.

Хеширование. По значению аргумента поиска вычисляется адрес требуемой записи в информационном массиве. Это соответствует вычислению значения некоторой заранее выбранной функции (которая называется хеш-функцией), аргументом которой является ключ поиска. Например, если в некотором массиве хранятся фамилии студентов и рейтинговые оценки, и фамилия является ключевым полем, к ней может быть применена хеш-функция, вычисляемая как сумма кодов составляющих ее символов. Для реализации одного из способов (первого способа) хеширования вначале по исходному массиву следует создать хеш-таблицу. Записи размещаются в соответствии с адресами (индексами), получаемыми при преобразовании соответствующих ключевых полей посредством хеш-функции. Если в результате применения хеш-функции к различным ключам получились одинаковые адреса (индексы) записей, ко второму и последующим ключам следует применять процедуру повторного хеширования. Другой способ хеширования состоит в том, что записи массива организуются в виде набора односвязных списков. Адрес каждого списка является результатом применения функции хеширования к одному или нескольким ключам. В каждом списке последовательно хранятся записи, имеющие одинаковые значения результатов преобразования ключей в адреса.

 

Многоаспектный поиск с использованием инверсных массивов. Данные хранятся во внешней памяти. Среди записей выделяют поля, по которым может быть осуществлен запрос на многоаспектный поиск. Пусть имеется m таких полей. Создается m копий информационного массива, каждая из которых сортируется по одному из m ключевых полей и называется инверсным массивом. Для осуществления поиска по аргументу, состоящему из m ключей, в каждой из копий информационного массива проводится поиск по соответствующему ключевому полю. Над полученными m множествами записей проводится операция теоретико-множественного пересечения.

Ускоренный поиск, основанный на использовании общего
справочника. Общий справочник может создаваться на основе неупорядоченного массива, содержащего записи фиксированной или переменной длины. В нем для каждой записи основного массива создается одна справочная запись, называемая статьей. Статья содержит значения ключевого поля и и указатель, определяющий адрес записи в информационном массиве. Статьи в справочнике упорядочиваются по значениям ключа. Поиск реализуется одним из методов ускоренного поиска (двоичный, блочный) в справочнике, по полученному указателю происходит выбор требуемой записи из информационного массива. При пополнении информационного массива происходит пополнение справочника, при условии сохранения упорядоченности.

Ускоренный поиск, основанный на использовании единого
справочника.
Информационный массив упорядочивается, делится на блоки. Каждый блок содержит заданное количество записей. Каждому блоку в едином справочнике соответствует статья, содержащая поле ключа и поле указателя. Поле указателя содержит адрес первой записи в блоке. Поле ключа – значение ключа последней записи этого блока. Поиск осуществляется в два этапа, аналогично описанному выше блочному поиску, за исключением того, что просмотр блока начинается с его первой записи. При большом объеме информационного массива единый справочник может оказаться настолько велик, что потребуется также разбить его на блоки, создав справочник следующего, второго уровня. Создание справочников выше третьего уровня не является целесообразным. Оптимальный размер блока одноуровневого справочника равен квадратному корню из количества записей массива.

 

Задание

Написать программу, реализующую один из алгоритмов программного поиска данных в информационном массиве, расположенном в оперативной памяти (по желанию, можно считывать данные из файла), используя выбранные в соответствии с вариантом из табл. 6 формат ключа, формат других полей записи, вид и метод поиска.

Таблица6







Дата добавления: 2014-11-10; просмотров: 1729. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Гальванического элемента При контакте двух любых фаз на границе их раздела возникает двойной электрический слой (ДЭС), состоящий из равных по величине, но противоположных по знаку электрических зарядов...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия