Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САОД / САОД1 / Лабораторная работа 1.doc
Скачиваний:
17
Добавлен:
26.04.2015
Размер:
64 Кб
Скачать

Лабораторная работа № 1

Методы поиска

Цель работы

  1. Изучить различные методы поиска;

  2. Программно реализовать методы поиска и провести их сравнительный анализ.

Методические указания

Перед выполнением индивидуального задания ознакомиться со способами хранения множества элементов в массиве и методами поиска.

При выполнении индивидуального задания придерживаться следующей последовательности действий:

  1. изучить словесную постановку задачи;

  2. разработать алгоритмы для каждого поиска;

  3. разработать программу, решающую поставленную задачу;

  4. отладить и оттестировать программу;

  5. написать и представить к защите отчет по работе.

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

  1. Титульный лист.

  2. Словесная постановка задачи.

  3. Алгоритмы рассматриваемых методов поиска в графическом виде.

  4. Листинг программы.

  5. Таблица результатов в случае удачного завершения поиска.

  6. Таблица результатов в случае неудачного завершения поиска.

  7. График зависимости времени tот количества элементов последовательности в случае удачного завершения.

  8. График зависимости времени t(мс) от количества элементов последовательности в случае неудачного завершения.

  9. Сравнение рассмотренных методов и анализ результатов исследования.

  10. Ответы на контрольные вопросы по согласованию с преподавателем.

Контрольные вопросы

  1. Какова сложность линейного (последовательного) поиска?

  2. Какова сложность быстрого линейного (быстрого последовательного) поиска?

  3. Какова сложность дихотомического поиска?

  4. Какова сложность интерполяционного поиска?

  5. Насколько уменьшает количество проверяемых записей один шаг бинарного поиска?

  6. До какой величины уменьшает количество проверяемых записей один шаг интерполяционного поиска?

  7. Какой поиск превосходит по своим характеристикам другой: бинарный или интерполяционный?

Варианты индивидуальных заданий

Задание. Программная реализация методов поиска и их сравнительный анализ по временной сложности

С помощью методов поиска:

  1. ЛИНЕЙНОГО (ПОСЛЕДОВАТЕЛЬНОГО)

  2. БЫСТРОГО ЛИНЕЙНОГО

  3. ДИХОТОМИЧЕСКОГО (БИНАРНОГО)

найти значение ключа в каждой из последовательностей и определить время, за которое был выполнен каждый поиск. Построить график зависимости времени tот количества элементов последовательностиnпри удачном и при неудачном завершении поиска.

2. Теоретические вопросы

В этой и нескольких последующих лабораторных работах будут рассматриваться способы хранения множества однотипных элементов. Основными критериями сравнения этих способов будут временные сложности алгоритмов поиска/добавления/удаления элементов множества. Главная задача авторов – показать различные способы организации хранения множества однотипных элементов. Также хотелось бы, чтобы читатель почувствовал взаимную зависимость способов хранения данных и сложности алгоритмов их обработки, понял важность изначального выбора структуры данных и алгоритмов их обработки, удовлетворяющей всем необходимым требованиям, следующим из особенностей эксплуатации программного продукта.

Хоть эта глава и называется “методы поиска” интерес представляют и операции добавления и удаления элементов. Эти операции представляют интерес, так как в реальных задачах редко встречается статическое множество, то есть множество, которое не меняется. Далее будет видно, как сильно зависят друг от друга способ хранения множества элементов и сложности перечисленных операций.

Начнем рассмотрение способов хранения множества однотипных элементов с точки зрения алгоритмов поиска/добавления/удаления с алгоритма линейного поиска.