Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа.doc
Скачиваний:
42
Добавлен:
01.04.2014
Размер:
338.43 Кб
Скачать

46

Белорусский государственный университет информатики и радиоэлектронники

Факультет заочного, вечернего и дистанционного образования

Специальность: Программное обеспечение информационных технологий.

Курсовой проект

по дисциплине «Конструирование программ и языки программирования»

на тему: «Методы сортировки и их сравнение»

Выполнил:

Минск 2009

Содержание.

  1. Постановка задачи 3

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

  3. Схема алгоритма решения задачи 18

  4. Описание функций 19

  5. Руководство пользователю 21

  6. Литература 28

  7. Листинг программы 29

  1. Постановка задачи

Разработать обучающую программу реализующую алгоритм сортировки методом Шелла. Сравнить с n²-методами (сравнение с “пузырьковым методом”).

Исследовать как же поведут себя в реальных задачах сортировки элементарных массивов такие алгоритмы сортировки, как: пирамидальная, пузырьковая, выбором, вставками, Шелла.

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

Существует много методов сортировки последовательностей. Наиболее приемлемый и широко используемый в целях обучения является «пузырьковый» метод сортировки. Он хорошо и быстро сортирует небольшие массивы (порядка 10-20 элементов). Но на предприятиях и вообще в промышленности, информационных сетях и информационных станциях используются огромные массивы данных и сортировать их методом «пузырька» нет смысла так как это занимает очень большое количество времени.

Для упрощения этой задачи были разработаны и отлажены дополнительные методы сортировки. Их время реализации намного превышало время сортировки «пузырькового» метода. Это отчетливо было видно особенно на работе с большими структурами данных.

Ниже рассмотрены описания некоторых из них.

2.1 Описание метода сортировки Пузырьком.

Расположим массив сверху вниз, от нулевого элемента - к последнему.

Идея метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.

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

Делаем проходы по все уменьшающейся нижней части массива до тех пор, пока в ней не останется только один элемент. На этом сортировка заканчивается, так как последовательность упорядочена по возрастанию.

Среднее число сравнений и обменов имеют квадратичный порядок роста: Theta(n2), отсюда можно заключить, что алгоритм пузырька очень медленен и малоэффективен. Тем не менее, у него есть громадный плюс: он прост и его можно по-всякому улучшать.