Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ti.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.56 Mб
Скачать

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) сравнений

.

  1. Провести сортировку массива {КГ, К2’,..., Kj’} любым из ранее изученных методов.

  2. Провести поиск в отсортированном массиве на ЭВМ, задавая по очереди все данные значения аргумента поиска.

  3. Построить бинарное дерево поиска в отсортированном массиве для всех значений аргумента поиска. Оценить число сравнений при поиске.

Содержание отчета.

  1. Краткое изложение целей и задач лабораторной работы, задачи поиска в ИМ и рассматриваемого метода поиска.

  2. Схема алгоритма бинарного поиска.

  3. Массив {КГ, К2’,..., Kj’} и результаты поиска вручную.

  4. Результаты сортировки и поиска в отсортированном массиве на ЭВМ (распечатка с комментариями).

  5. Бинарное дерево поиска в отсортированном массиве для всех значений аргумента поиска. Оценка числа сравнений при поиске.

Сравнительный анализ методов последовательного и бинарного поиска

  1. .Что такое отношение упорядочения?

  2. Что такое бинарное дерево?

  3. Что такое оптимальное бинарное дерево?

  4. Как определяется высота дерева?

  5. Каково возможное минимальное и максимальное число сравнений при удачном поиске? Как оценить среднее число сравнений?

  6. Почему при бинарном поиске в исходном массиве не допускается одинаковые значения ключей?

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]