Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab6.doc
Скачиваний:
14
Добавлен:
09.02.2015
Размер:
57.34 Кб
Скачать

Лабораторная работа 6

Сортировка одномерного числового массива.

Цели работы:

- освоение методов обработки массивов на примере сортировки массива;

- знакомство с алгоритмами сортировки;

- использование динамических массивов;

-инициализация массивов с помощью датчика случайных чисел;

- оценка быстродействия алгоритма.

Задание.

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

Сравнить быстродействие алгоритмов, которое определяется числом сравнений и перестановок, для исходного не отсортированного массива и для исходного массива, отсортированного в прямом и обратном порядке.

Исследовать зависимость быстродействия от размера массива. Возможность изменения длины массива реализуйте с помощью динамического массива, а для его инициализации используйте датчик случайных чисел (см. Приложение 2). Результаты исследования выведите в виде отформатированной таблицы.

При выполнении работы обратите внимание на следующие требования и рекомендации:

  1. Размерность нединамического массива может быть только константой или константным выражением. Рекомендуется задавать размерность с помощью именованной константы.

  2. Элементы массивов нумеруются с нуля, поэтому максимальный номер элемента всегда на единицу меньше размерности.

  3. Автоматический контроль выхода индекса за границы массива не производится, поэтому программист должен следить за этим самостоятельно.

  4. Указатель — это переменная, в которой хранится адрес области памяти.

  5. Имя массива является указателем на его нулевой элемент.

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

  7. Освобождение памяти, выделенной посредством new[], выполняется с помощью операции delete[].

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

  9. Если количество элементов, которые должны быть введены в программу, известно до ее выполнения, определяйте массив в операторе описания переменных (причем лучше как локальную переменную, чем как глобальную);

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

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

Приложение 1

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

При описании массива после имени в квадратных скобках задается количество его элементов (размерность), например int a[10]. Массив располагается в зависимо­сти от места его описания либо в сегменте данных, либо в сегменте стека, и все инструкции по выделению памяти формирует компилятор до выполнения про­граммы. Вследствие этого размерность массива может быть задана только констан­той или константным выражением.

При описании массив можно инициализировать, то есть присвоить его элементам начальные значения, например:

int а[10] = {1, 1, 2, 2, 5, 100}:

Если инициализирующих значений меньше, чем элементов в массиве, остаток мас­сива обнуляется, если больше — лишние значения не используются.

ВНИМАНИЕ

Элементы массивов нумеруются с нуля, поэтому максимальный номер элемента всегда на единицу меньше размерности. Автоматический контроль выхода индекса за границы мас­сива не производится, поэтому программист должен следить за этим самостоятельно. Для данного массива элементы имеют номера от 0 до 9. Номер элемента указыва­ется после его имени в квадратных скобках, например, а[0], а[3].

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