- •Методические указания
- •Операционные системы пк
- •Часть 1
- •Севастополь
- •Требования к оформлению отчета к лабораторной работе
- •Введение
- •Лабораторная работа № 1 Тема: «Основы работы с ос Windows»
- •1.1 Окна ос Windows
- •1.2 Панель задач
- •1.3 Главное меню
- •1.4 Значок Мой компьютер
- •1.5 Контекстное меню
- •1.6 Создание папок и ярлыков
- •1.7 Работа с панелью управления
- •1.8 Завершение работы Windows
- •Лабораторная работа № 2 Тема: «Работа с файловой системой Windows. Стандартные программы Windows»
- •2.1 Папки, ярлыки, файлы
- •2.2 Создание объектов
- •2.3 Запуск программ
- •Лабораторная работа № 3 Тема: «Основы работы с пакетами ms Word и ms Excel»
- •3.1 Панель инструментов и режимы просмотра Microsoft Word
- •3.2 Форматирование текста в редакторе ms Word
- •3.3. Редактор формул в ms Word
- •3.3 Окна редактора, меню и панели инструментов в Excel
- •3.4 Типы данных и форматы представления в Excel
- •3.5 Основные приемы работы в ячейках Excel
- •3.6 Работа с формулами в Excel
- •3.7 Создание диаграмм средствами Excel
- •Часть I 1) Открыть новый документ ms Word
- •Часть II 1) Создать новую книгу ms Excel
- •Лабораторная работа № 4 Тема: «Системы счисления. Формы представления чисел»
- •4.1 Системы счисления
- •4.2 Правила перевода целых чисел
- •4.3 Арифметические операции
- •Лабораторная работа № 5 Тема: «Создание блок-схем алгоритмов в пакете ms Visio»
- •5.1 Основное понятие алгоритма
- •5.2 Блок-схемы алгоритма
- •5.4 Правила применения символов
- •5.4 Создание алгоритмов средствами ms Visio
- •5.5 Создание текстового документа ms Word со схемой алгоритма
- •Лабораторная работа № 6 Тема: «Исследование алгоритмов линейной структуры»
- •6.1 Виды алгоритмических структур
- •6.2 Линейный алгоритмический процесс
- •Лабораторная работа № 7 Тема: «Исследование разветвляющихся алгоритмов»
- •7.1 Разветвляющийся вычислительный процесс
- •7.2 Переключательные алгоритмические процессы
- •Лабораторная работа № 8 Тема: «Исследование алгоритмов циклической структуры»
- •8.1 Цикл с постусловием и с предусловием
- •8.2 Цикл с заданным количеством повторений
- •8.3 Алгоритмы программ с накапливанием
- •Лабораторная работа № 9 Тема: «Разработка алгоритмов, использующих структуру данных массив»
- •Лабораторная работа № 10 Тема: «Разработка алгоритмов, использующих подпрограммы»
- •Лабораторная работа № 11 Тема: «Определение функции сложности алгоритмов»
- •11.1 Функция сложности алгоритма
- •11.2 Виды функции сложности алгоритмов o(I)
- •11.3 Анализ функции сложности по программе
- •Лабораторная работа № 12 Тема: «Исследование рекурсивных и итерационных алгоритмов»
- •12.1 Рекурсия
- •12.2 Итерационные циклы
- •Лабораторная работа № 13 Тема: «Исследование основных алгоритмов сортировок»
- •13.1 Задача сортировки элементов массива
- •13.2 Линейный выбор
- •13.3 Линейный выбор с обменом
- •13.4 Стандартный обмен (метод "пузырька")
- •13.5 Челночная сортировка
- •13.6 Сортировка Шелла
- •13.7 Линейная вставка
- •3.8 Центрированная и двоичная вставки
- •13.9 Быстрая сортировка (метод Хоара)
- •Лабораторная работа № 14 Тема: «Исследование основных алгоритмов поиска»
- •14.1 Последовательный поиск
- •14.2 Бинарный (двоичный) поиск
- •14.3 Интерполяционный поиск
- •Библиографический список
Лабораторная работа № 14 Тема: «Исследование основных алгоритмов поиска»
Цель работы – изучить принцип построения алгоритмов поиска.
Теоретические сведения
Алгоритмы поиска, как и алгоритмы сортировки, являются основными алгоритмами обработки данных как системных, так и прикладных задач.
Дан аргумент поиска K. Задача поиска состоит в отыскании записи, имеющей K своим ключом. Существуют две возможности окончания поиска: либо поиск оказался удачным, т.е. позволил определить местонахождение записи, содержащей ключ K, либо он оказался неудачным, т.е. показал, что ни одна из записей не содержит ключ K.
14.1 Последовательный поиск
Для массива, данные в котором не упорядочены путём сортировки или каким-либо другим способом, единственный путь для поиска заданного элемента состоит в сравнении каждого элемента массива с заданным. При совпадении некоторого элемента массива с заданным его позиция в массиве фиксируется. Этот алгоритм называется последовательным или линейным поиском. Эффективность этого метода очень низкая, так как для отыскания одного элемента в массиве размерности N в среднем нужно сделать N/2 сравнений.
14.2 Бинарный (двоичный) поиск
Бинарный или двоичный поиск может быть использован в качестве алгоритма поиска в упорядоченном массиве:
Схема алгоритма следующая. Сначала сравнивают K со средним элементом массива. Результат сравнения позволяет определить, в какой половине массива следует продолжать поиск, применяя к ней ту же процедуру, и т.д. После не более чем сравнений ключ либо будет найден, либо будет установлено его отсутствие.
14.3 Интерполяционный поиск
По-видимому, бинарный поиск не является самым лучшим методом поиска, доказательством чему служит то обстоятельство, что в повседневной жизни им мало пользуются. Гораздо чаще используется интерполяционный поиск. Его схема следующая, Если известно, что K находится между и , то номер очередного элемента для сравнения определяется формулой
Последующая процедура аналогична процедуре, используемой в бинарном поиске.
Интерполяционный поиск асимптотически предпочтительнее бинарного; по существу один шаг бинарного поиска уменьшает количество "подозреваемых" записей от n до , а один шаг интерполяционного - от n до . В среднем интерполяционный поиск требует шагов.
Индивидуальные задания
1) Сформировать массив N целых чисел. Создать алгоритм определения суммы чисел, имеющих четные порядковые номера.
2) Сформировать массив N целых чисел. Создать алгоритм определения количества нулевых элементов и исключить их из массива.
3) Сформировать массив N целых чисел. Создать алгоритм определения наличия среди них одинаковых. Нулевые значения не учитывать.
4) Сформировать массив N чисел, среди которых могут быть как положительные, так и отрицательные числа. Создать алгоритм определения суммы и количества только отрицательных значений.
5) Сформировать массив N целых двухзначных чисел. Создать алгоритм выбора чисел, имеющих четные индексы, и записать их в новый массив.
6) Сформировать массив N целых двухзначных чисел. Создать алгоритм выбора чисел, имеющих нечетные индексы, и записать их в новый массив.
7) Сформировать массив N натуральных чисел. Создать алгоритм выбора из них равных и исключить их из массива.
8) Сформировать массив N натуральных чисел. Создать алгоритм выбора всех чисел < 20 или > 80 и исключить их из массива.
9) Сформировать массив N натуральных чисел. Создать алгоритм выбора всех чисел >9 и < 60 и исключить их из массива.
10) Сформировать массив N чисел, среди которых могут быть как положительные, так и отрицательные числа. Создать алгоритм определения суммы положительных и суммы отрицательных чисел.
11) Сформировать массив N целых чисел. Создать алгоритм определения суммы чисел, имеющих четные порядковые номера.
12) Сформировать массив N целых трёхзначных чисел. Создать алгоритм определения всех нечётных чисел и записать их в новый массив.
Контрольные вопросы
1) Что понимается под определением поиска?
2) Какие виды поиска различают?
3) Укажите основные особенности алгоритмов поиска.