Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет.указания к лаб.раб.часть1 А5.doc
Скачиваний:
7
Добавлен:
17.08.2019
Размер:
336.38 Кб
Скачать

Порядок выполнения работы.

  1. Ознакомится с описанием лабораторной работы №4. Изучить алгоритм сортировки методом Шелла.

  2. Изучить блок-схему данной сортировки.

  3. Написать последовательность сортировки заданного массива методом Шелла в виде таблицы с указанием номеров просмотров (см. пример сортировки).

  4. Произвести подсчет числа сравнений и количества пересылок, полученных при сортировке вашего варианта массива методом Шелла. Сравните полученные данные при сортировке этим методом с данными, полученными в лабораторных работах №1-3 проанализируйте все рассмотренные в лабораторных работах методы сортировок по эффективности на основе ваших данных.

  5. Провести сортировку заданного массива на ЭВМ.

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

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

  2. Блок-схема алгоритма рассмотренной сортировки.

  3. Таблица последовательности сортировки заданного массива чисел.

  4. Анализ эффективности алгоритма Шелла. Сравнительный анализ с теоретическими данными и с ранее рассмотренными методами сортировок.

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

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

  1. Является ли алгоритм Шелла алгоритмом устойчивой сортировки? Рассмотрите это на примере.

  2. Что такое h-сортировка?

  3. Какие имеются требования к выбору последовательности шагов при сортировке по методу Шелла?

  4. Какова эффективность алгоритма Шелла?

  5. В чем заключается основная идея метода Шелла?

2.5. Лабораторная работа № 5. Последовательный поиск в информационном массиве.

Цель работы: изучение метода последовательного поиска.

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

Последовательный поиск записей предполагает существование между элементами ИМ отношения следования. При поиске происходит просмотр записей в соответствии с алгоритмом. Для последовательного поиска в массиве К={K1,K2, … ,Kn} имеется указатель массива I , 1  I  n. Над указателем выполняются операции первоначального присвоения ему значения, увеличения или уменьшения.

Алгоритм последовательного поиска заключается в последовательном вводе N элементов массива и проверке значений их ключей на равенство аргументу поиска z. Элемент массива, для которого это равенство выполняется, является искомым. Соответствующее значение указателя i выводится на печать.

Если ни один элемент массива не имеет значения ключа, равного заданному аргументу поиска то выводится сообщение, что элемент не найден.

В данной работе в качестве ИМ используется последовательность целых чисел, разрядность которых с учетом знакового разряда не должна превышать 5, а количество элементов массива не должно превышать 50. Ключом элемента является само число. Для удачного поиска необходимо, чтобы значение аргумента поиска было равно значению какого-либо элемента из заданного массива чисел.

Приведем пример последовательного поиска в массиве из 6 чисел, проделанного вручную.

Дано: К={-50; 2; 7; 559; -37;10001}, z =7.

I=1 К(1)= -50 -507

I=2 К(2)=2 27

I=3 К(3)= 7 7=7

Номер искомого элемента равен 3.

I=4 К(4)=-559 5597

I=5 К(5)= -37 -377

I=6 К(6)=10001 100017

Поиск окончен. Из заданного массива лишь элемент с номером 3 соответствует заданному аргументу поиска.

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

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

Среднее количество сравнений при одинаковой частоте использования элементов .

Если имеются статические данные о частоте использования элементов, то среднее количество сравнений , где di – частота использования i-той записи.

Если с каждым элементом ИМ связать счетчик числа обращений к нему, то в процессе функционирования эту статическую информацию можно использовать для реорганизации файла. Это приведет к существенному увеличению быстродействия, но потребует дополнительного объема памяти для организации программных структур счетчиков, а также для организации пересылок.

Использования дополнительной информации можно легко избежать, применяя схему “самоорганизующегося файла”. Она позволяет довольно хорошо упорядочить записи без вспомогательных полей для счетчиков путем нахождения нужной записи и перемещения ее в начало файла. Таким образом, часто используемые элементы будут располагаться в начале ИМ.

Блок-схема последовательного поиска представлена в Приложении 6.