Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный
технический университет»
Факультет компьютерных технологий
Кафедра «Прикладная математика и информатика»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине «Современные практики программирования»
Реализация различных алгоритмов сортировки на языке C#
Студент группы 3МИб-1 ____________________ Р.И. Шишов
подпись, дата
Руководитель работы ____________________ А.Ю. Лошманов
подпись, дата
Нормоконтролер ____________________ А.Ю. Лошманов
подпись, дата
2015 Содержание
Введение…………………………………………………………………………...........3
1 Пузырьковая сортировка..............……………………………………………............4
2 Алгоритм бинарного дерева…………........…………………………………………7
3 Быстрая сортировка………........................……………….…………………...........11
4 Сортировка перемешиванием...…………………………….…….………..……….14
5 Сортировка выбором...……………………………………….….......……..……….18
Заключение………………………………………………………………….…………21
Список использованных источников………………………………………..……….22
Введение
Целью данной курсовой работы является изучение основных алгоритмов сортировки массивов и определение самого эффективного, то есть наиболее быстро действенного метода.
Необходимость отсортировать какие-либо величины возникает в программировании очень часто. Например, входные данные подаются «вперемешку», а нашей программе удобнее обрабатывать упорядоченную последовательность. Еще в упорядоченном массиве легче осуществлять поиск. Существуют ситуации, когда предварительная сортировка данных позволяет сократить содержательную часть алгоритма в разы, а время его работы - в десятки раз [1].
Практическое значение выбранной темы – осуществление пяти основных методов сортировки:
Пузырьковая сортировка;
Алгоритм бинарного дерева;
Быстрая сортировка;
Сортировка перемешиванием;
Сортировка выбором.
Алгоритмы сортировки образуют основу для огромного большинства прикладных программ. Сортировка информации – это одна из стандартных функций, возникающих в процессе решения задач.
В частности, в данном курсовом проекте осуществлены следующие алгоритмы: создание исходного случайного массива, выбор одного из пяти методов сортировки, выбор способа сортировки массива (по возрастанию или по убыванию), вывод отсортированного массива.
В процессе создания программы будет разработан алгоритм каждой сортировки в отдельности, продуман удобный интерфейс для пользователя, и в итоге написана удобочитаемая программа.
1 Пузырьковая сортировка
Метод пузырьковой сортировки один из самых простых методов внутренней сортировки. Суть алгоритма состоит в последовательном просмотре массива от конца к началу или от начала к концу и сравнении каждой пары элементов между собой. При этом «неправильное» расположение элементов устраняется путем их перестановки.
Процесс просмотра и сравнения элементов повторяется до просмотра всего массива. При сортировке по возрастанию «легкие» элементы с меньшим значением как бы «всплывают» к началу массива подобно тому, как это делают пузырьки воздуха в стакане с водой - отсюда и происходит популярное название алгоритма.
«Пузырьковая» сортировка имеет очень плохие временные характеристики. Она имеет только учебно-исторический интерес и не может быть рекомендована для практического использования [5].
Реализация алгоритма пузырьковой сортировки на языке С#:
class Sort
{
public void BubbleSort(int[] a)
{
int t;
int n = a.Length;
for (int j = 1; j <= n - 1; j++)
{
for (int i = 0; i < n - j; i++)
{
if (a[i] > a[i + 1])
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
}
}
Рисунок 1 – Реализация программы, которая сортирует по возрастанию массив из 3000 элементов пузырьковым методом за 52 миллисекунд.
Рисунок 2 – Реализация программы, которая сортирует по убыванию массив из 3000 элементов пузырьковым методом за 52 миллисекунд.