
- •Основные понятия сортировки и поиска.
- •Сортировка.
- •Лабораторная работа № 1.
- •Лабораторная работа № 2.
- •Лабораторная работа № 3.
- •Порядок выполнения работы.
- •Сортировка информационных массивов методом Шелла.
- •Методические указания.
- •Лабораторная работа № 5. Последовательный поиск в информационном массиве.
- •Методические указания.
- •10. 2.6. Лабораторная работа № 6.
- •Литература.
10. 2.6. Лабораторная работа № 6.
Бинарный поиск в информационном массиве.
Цель работы: изучение метода бинарного поиска и его алгоритма.
Методические указания.
Бинарный поиск предполагает существование между элементами ИМ отношения упорядочения: К1<К2<,...,<Кп. Поэтому перед началом поиска необходимо провести сортировку массива. Алгоритм бинарного поиска состоит в следующем. Аргумент поиска сравнивается со средним элементом Км из массива ключей {Kl, К2, ..., Км}, причем индекс М среднего элемента вычисляется по формуле.
где L - нижняя граница; К - верхняя граница; | X | — ближайшее целое, меньшее или равное X.
Для исходного массива L=l, K=N. Результат сравнения позволит определить, в какой половине файла продолжать поиск.
К выбранной половине файла с границами L и К применяется та же процедура. Если интервал пустой, т.е. L>K, то поиск неудачен. Иначе процесс повторяется: пока средний элемент интервала не будет равен аргументу поиска.
В данной работе в качестве ИМ используется упорядоченная последовательность целых чисел, разрядность которых с учетом знакового разряда не должна превышать 5, а количество элементов массива не должно превышать 50. Ключом элемента является само число. Значение границ, номер среднего элемента и сообщение о результатах поиска выводится на печать.
Приведем пример бинарного поиска в массиве из 6
чисел.
Дано: К={-50; -37; 2; 7; 559; 10001}, z=7.
L=1 К=6 М=3 К(3)=2
2<7
1=4 К=6 М=5 К(5)=5
559>7
1=4 К=4 М=4 К(4)=7
7=7
Номер искомого элемента равен 4. Поиск окончен. Так как на исходное множество ключей накладывается требование строгого упорядочения, то возможность появления в нем одинаковых ключей исключается.
Организацию бинарного поиска для анализа числа сравнений удобно представить в виде бинарного оптимального дерева. Бинарным деревом называется древовидная структура с двоичным ветвлением. В качестве оптимального (в смысле организации поиска) дерева определяют дерево, ветви которого имеют в высоту от h до h-1, где h - высота дерева. Тогда при 2Ы < N < 2h удачный поиск требует (min = 1, max = h) сравнений
.
Провести сортировку массива {КГ, К2’,..., Kj’} любым из ранее изученных методов.
Провести поиск в отсортированном массиве на ЭВМ, задавая по очереди все данные значения аргумента поиска.
Построить бинарное дерево поиска в отсортированном массиве для всех значений аргумента поиска. Оценить число сравнений при поиске.
Содержание отчета.
Краткое изложение целей и задач лабораторной работы, задачи поиска в ИМ и рассматриваемого метода поиска.
Схема алгоритма бинарного поиска.
Массив {КГ, К2’,..., Kj’} и результаты поиска вручную.
Результаты сортировки и поиска в отсортированном массиве на ЭВМ (распечатка с комментариями).
Бинарное дерево поиска в отсортированном массиве для всех значений аргумента поиска. Оценка числа сравнений при поиске.
Сравнительный анализ методов последовательного и бинарного поиска
.Что такое отношение упорядочения?
Что такое бинарное дерево?
Что такое оптимальное бинарное дерево?
Как определяется высота дерева?
Каково возможное минимальное и максимальное число сравнений при удачном поиске? Как оценить среднее число сравнений?
Почему при бинарном поиске в исходном массиве не допускается одинаковые значения ключей?
В чем заключается разница между первичным и вторичным ключами? Для каких целей используется каждый из них? Приведите примеры их использования.