- •Оглавление
- •Введение
- •Основные понятия и определения
- •Встроенные структуры данных(Pascal/с)
- •Варианты индивидуальных заданий на Pascal
- •Варианты индивидуальных заданий на c
- •Простые типы данных в Pascal
- •Вещественные типы
- •Вещественные типы языка Pascal
- •Сложный тип
- •Простые типы данных в с Целые типы
- •Целые типы языка c
- •Диапазоны значений целых типов языка c
- •Символьный тип
- •Перечисляемый тип
- •Вещественные типы
- •Вещественные типы языка c
- •Структурированные типы данных в Pascal Массив
- •Структура данных типа «запись»
- •Структура данных типа «множество»
- •Структурированные типы данных в c Структура данных типа «массив»
- •Структура данных типа «структура»
- •Производные структуры данных. Структура данных «строка» (Pascal/c)
- •Задание
- •Варианты индивидуальных заданий
- •Варианты задач
- •Варианты форматов
- •Назначение процедур и функций в модулях реализации сд типа строка в Pascal
- •Назначение процедур и функций в модулях реализации сд типа «строка» в c
- •Сравнительный анализ методов сортировки (Pascal/c)
- •1. Изучить временные характеристики алгоритмов.
- •6. Выводы по работе.
- •1. Выбираем элемент массива в качестве разделителя (например, первый).
- •Массив м
- •Массив м
- •Примеры программной реализации алгоритмов сортировки на языке Pascal
- •Примеры программной реализации алгоритмов сортировки на языке c
- •Сравнительный анализ алгоритмов поиска (Pascal/c)
- •Максимальное количество операций сравнения
- •Среднее количество операций сравнения
- •Алгоритмы поиска в неупорядоченных массивах Алгоритм линейного поиска
- •Алгоритм быстрого линейного поиска
- •Анализ алгоритмов линейного поиска
- •Алгоритмы поиска в упорядоченных массивах Алгоритм быстрого линейного поиска
- •Алгоритм бинарного поиска
- •Анализ алгоритма бинарного поиска
- •Алгоритм блочного поиска
- •Анализ алгоритма блочного поиска
- •Структуры данных «линейные списки» (Pascal/с)
- •Варианты индивидуальных заданий
- •Назначение процедур и функций
- •Структуры данных «стек» и «очередь» (Pascal/с)
- •Результаты работы программы
- •Варианты индивидуальных заданий
- •Варианты задач
- •Модули для реализации стека
- •Модули для реализации очереди
- •Очередь
- •Структуры данных «дерево» (Pascal/с)
- •Варианты индивидуальных заданий
- •Варианты задач
- •Назначение процедур и функций:
- •Принципы размещения бинарного дерева в памяти эвм
- •Алгоритмы обхода бинарного дерева
- •Обход бинарного дерева «в глубину» (в прямом порядке)
- •Обход бинарного дерева «в ширину» (по уровням)
- •Обход бинарного дерева в симметричном порядке
- •Обход бинарного дерева в обратном порядке
- •Алгоритмы формирования бинарного дерева
- •Рекурсивный алгоритм формирования бинарного дерева «в глубину»
- •Итеративный алгоритм формирования бинарного дерева «в глубину»
- •Алгоритм формирования бинарного дерева «в ширину»
- •Алгоритм формирования бинарного дерева «снизу вверх»
- •Рекурсивный алгоритм формирования бинарного дерева
- •Итеративный алгоритм формирования бинарного дерева
- •Алгоритм формирования бинарного дерева минимальной высоты
- •Итеративный алгоритм формирования сбалансированного бинарного дерева
- •Представление алгебраических выражений бинарными деревьями
- •Алгоритм формирования бинарного дерева по прямой польской записи
- •Алгоритм формирования бинарного дерева по обратной польской записи
- •Структуры данных «таблица» (Pascal/с)
- •Варианты индивидуальных заданий
- •Библиографический список
Сравнительный анализ алгоритмов поиска (Pascal/c)
Цель работы: изучение алгоритмов поиска элемента в массиве и закрепление навыков в проведении сравнительного анализа алгоритмов.
З а д а н и е
1. Изучить алгоритмы поиска:
1) в неупорядоченном массиве:
- линейный;
- быстрый линейный;
2) в упорядоченном массиве:
- быстрый линейный;
- бинарный;
- блочный.
2. Разработать и программно реализовать средство для проведения экспериментов по определению временных характеристик алгоритмов поиска.
3. Провести эксперименты по определению временных характеристик алгоритмов поиска. Результаты экспериментов представить в виде таблиц 12 и 13. Клетки таблицы 12 содержат максимальное количество операций сравнения при выполнении алгоритма поиска, а клетки таблицы 13 —среднее число операций сравнения.
4. Построить графики зависимости количества операций сравнения отколичества элементов в массиве.
5. Определить аналитическое выражение функции зависимости количества операций сравнения от количества элементов в массиве.
6. Определить порядок функций временной сложности алгоритмов
поиска.
С о д е р ж а н и е о т ч е т а
1. Тема лабораторной работы.
2. Цель работы.
3. Листинг программы.
4. Результаты работы программы.
5. Графики функций временной сложности.
6. Выводы по работе.
Таблица 12
Максимальное количество операций сравнения
Алгоритмы поиска |
Количество элементов в массиве | ||||||||
50 |
100 |
150 |
200 |
250 |
300 |
350 |
400 |
450 | |
Линейный (неупорядоченный массив) |
|
|
|
|
|
|
|
|
|
Быстрый линейный (неупорядоченный массив) |
|
|
|
|
|
|
|
|
|
Быстрый линейный (упорядоченный массив) |
|
|
|
|
|
|
|
|
|
Бинарный (упорядоченный массив) |
|
|
|
|
|
|
|
|
|
Блочный (упорядоченный массив) |
|
|
|
|
|
|
|
|
|
Таблица 13
Среднее количество операций сравнения
Алгоритмы поиска |
Количество элементов в массиве | ||||||||
50 |
100 |
150 |
200 |
250 |
300 |
350 |
400 |
450 | |
Линейный (неупорядоченный массив) |
|
|
|
|
|
|
|
|
|
Быстрый линейный (неупорядоченный массив) |
|
|
|
|
|
|
|
|
|
Бстрый линейный (упорядоченный массив) |
|
|
|
|
|
|
|
|
|
Бинарный (упорядоченный массив) |
|
|
|
|
|
|
|
|
|
Блочный (упорядоченный массива) |
|
|
|
|
|
|
|
|
|
Т е о р е т и ч е с к и е с в е д е н и я
Задача поиска заключается в том, чтобы определить наличие в массиве элемента, равного заданному.
Во многих программах поиск требует наибольших временных затрат, так что замена плохого поиска на хороший, часто ведет к существенному увеличению скорости работы программы. Выбор алгоритма поиска зависит от характера организованности массива.