Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы_Информатика.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.79 Mб
Скачать

Методические указания к лабораторной работе № 12

СОРТИРОВКА МАССИВОВ.

по дисциплине

ИНФОРМАТИКА

Направление подготовки (специальность):

161101 Системы управления летательными аппаратами

Профиль подготовки (специализация): Системы управления движением летательных аппаратов

Квалификация (степень) выпускника: специалист

Форма обучения: очная

Тула 2011 г.

Цель и задачи работы: Исследовать сортировку массива с помощью классических алгоритмов и оценить их эффективность.

Теоретические сведения

определённом заданном порядке.

Проблема сортировки неупорядоченного массива относится в компьютерной науке к классическим. Она кажется простой, ведь всем приходилось выполнять какую-либо механическую сортировку, была ли то раскладка игральных карт, гардеробных номерков, карточек из библиотечного каталога или денежных счетов. Однако эта простота иллюзорна. Хотя первые программы сортировки были написаны фон Нейманом ещё в 1945 г., какого-либо значительного продвижения в теории сортировки не наблюдалось в течение последующих двадцати лет.

Цель сортировки - это облегчение последующего поиска элементов в отсортированном множестве. Можно заметить, что в этом смысле элементы сортировки присутствуют почти во всех задачах.

Основное требование к методам сортировки массивов - это экономное использование памяти. Другими словами, переупорядочивание элементов необходимо выполнять "на том же месте", а методы, которые пересылают элементы из массива A в массив B, не представляют интереса.

Хорошей мерой эффективности может быть С — число необходимых сравнений клю­чей и М —число пересылок (перестановок) элементов. Эти числа суть функции от n —числа сортируемых элементов. Хотя хорошие алгоритмы сортировки тре­буют порядка n*logn сравнений, мы сначала разбе­рем несколько простых и очевидных методов, их назы­вают прямыми, где требуется порядка n2 сравнении ключей. Начинать разбор с прямых методов, не тро­гая быстрых алгоритмов, нас заставляют такие при­чины:

  1. Прямые методы особенно удобны для объясне­ния характерных черт основных принципов большин­ства сортировок.

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

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

Методы сортировки «.на том же месте-» можно раз­бить в соответствии с определяющими их принципа­ми на три основные категории:

  1. Сортировки с помощью включения (by inser­tion).

  2. Сортировки с помощью выделения (by selec­tion).

  3. Сортировки с помощью обменов (by ex­change).

Сортировка обменом

Сортировка обменом - это метод, при котором все соседние элементы массива попарно сравниваются друг с другом и меняются местами в том случае, если предшествующий элемент больше последующего. В результате этого максимальный элемент постепенно смещается вправо и в конце концов занимает крайнее правое место в массиве, после чего он исключается из дальнейшей обработки. Затем процесс повторяется, и своё место занимает второй по величине элемент, который также исключается из дальнейшего рассмотрения. Так продолжается до тех пор, пока вся последовательность не будет упорядочена.

Сортировку обменом называют ещё "пузырьковой сортировкой" (в силу очевидного сравнения с всплытием пузырьков воздуха в жидкости).

Ясно, что если на очередном проходе массива не будет сделано ни одного обмена, то массив уже упорядочен. Если мы будем учтём этот факт, то несущественное усложнение процедуры сортировки может дать существенный выигрыш в скорости.

Блок-схема процедуры сортировки методом обмена

Числовой пример алгоритма:

Общее число сравнений С и число пересылок (перестановок) М элементов:

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