Автор работы: Пользователь скрыл имя, 16 Декабря 2011 в 15:08, курсовая работа
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.
Введение 4
1 Описание метода решения задачи. 5
2 Описание программы. 6
3 Описание методики тестирования программы 9
4 Руководство пользователя по работе с программой 10
Заключение 11
Список использованных источников 12
Приложение А Файл sortirovka.cpp 13
Приложение Б Блок-схема 17
Министерство образования Российской федерации
Томский
Государственный Университет
Кафедра
радиоэлектроники и защиты информации
Демонстрационная программа сортировки методом «выбора»
Пояснительная
записка к курсовой работе.
Выполнил студент гр.149-2:
_____________Петухов И.Б.
“___” ___________ 2010 год
Руководитель:
____________Смирнов Е.В.
“___” ___________2010
год
Томск 2010
РЕФЕРАТ
Курсовая работа 17с, 2 прил,1 табл,7 ист
Цель работы – разработка программы сортировки массива методом <<выбора>>.
Программа содержит краткое описание алгоритма сортировки методом <<выбора>> и может быть использована в учебном процессе для наглядной иллюстрации работы алгоритма метода <<выбора>>.
Курсовая работа выполнялась в компиляторы : Eclipse C++.
Пояснительная
записка к курсовой работе выполнена
в текстовом редакторе
Содержание.
Введение 4
1 Описание метода решения задачи. 5
2 Описание программы. 6
3 Описание методики тестирования программы 9
4 Руководство пользователя по работе с программой 10
Заключение 11
Список использованных источников 12
Приложение А Файл sortirovka.cpp 13
Приложение
Б Блок-схема 17
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Ниже представлена программа сортировки массива целых чисел по возрастанию.
Актуальность данной курсовой работы заключается в том, что процедура сортировки, текст которой приведен в листинге, запускается нажатием кнопки Сортировка. Значения элементов массива вводятся из ячеек компонента StringGrid1. После выполнения очередного цикла поиска минимального элемента в части массива процедура выводит массив в поле метки.
Сортировка выбором — алгоритм сортировки, относящийся к неустойчивым алгоритмам сортировки. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае Θ(n2), предполагая что сравнения делаются за постоянное время.
Сортировка - процесс перестановки объектов данного массива в определенном порядке. Целью сортировки являются упорядочение массивов для облегчения последующего поиска элементов в данном массиве.
Исходные данные:
Размер массива не превышает 40 и задается с клавиатуры. Заполнение массива с помощью датчика случайных чисел или с клавиатуры по выбору пользователя. Элементы массива целые неотрицательные числа. Максимальное значение элементов массива задается с клавиатуры и не превышает 99.
Цель работы:
Алгоритм сортировки простым выбором
Рассмотрим задачу упорядочивания массива в следующей постановке:
Дан числовой массив , требуется переставить элементы массива так, чтобы они удовлетворяли после перестановки неравенствам:
Воспользуемся следующим алгоритмом сортировки для решения поставленной выше задачи: найдем среди элементов массива минимальный элемент и его номер, и затем поменяем его местами с первым элементом. Далее, среди оставшихся элементов (без первого элемента массива) определим минимальных элемент и его номер, и переставим этот элемент со вторым элементом массива. Процесс будем повторять до тех пор, пока не останется один элемент. Именно он и будет наибольшим элементом в массиве. Таким образом. В алгоритме простого выбора весь массив делится на готовую часть и исходную. На каждом шаге алгоритма граница смещается на один элемент вправо. В исходной части выбирается минимальный и добавляется к готовой части. Проиллюстрируем описанный алгоритм на примере.
Пример.
Пусть и задан массив из пяти целых чисел: 1, 2, 0, 5, 4. Отсортируем массив в порядке возрастания.
1-й
шаг. Среди заданных чисел
0, 2, 1, 5, 4.
2-й шаг. Среди чисел 2, 1, 5, 4 находим минимальное значение (это будет 1), стоящее в массиве на 3-м месте, и меняем его местами со вторым элементом. Будем иметь:
0, 1, 2, 5, 4.
3-й
шаг. Поскольку минимальным
0, 1, 2, 5, 4.
4-й шаг. Среди чисел 5, 4 определяем минимальное значение 4 и переставляем его со значением 5. Получаем в итоге:
0, 1, 2, 4, 5.
Итак, элементы массива отсортированы в порядке возрастания за шагов.
Оформим разобранный способ сортировки простым выбором в виде фкнкции на языке С++. В качестве параметров функции выступает число требуемых перестановок, длина массива и сам массив.
void selection(int &Perm, int Size, int *a)
{int i,j,k, // parameters of cycle
nom, // number of minimal element
min; // minimal element
Perm=0;
for (i=0;i<Size-1;i++)
{
nom=i;
min=a[i];
for (j=i+1;j<Size;j++) //find the minimum element
// and its number at each step
if (a[j]<min)
{
min=a[j];
nom=j;
}
if (a[i]>min) // if the current element is greater than the
// minimum then they will be permutated
{
Perm=Perm+1;
a[nom]=a[i];
a[i]=min;
}
cout<<"step="<<i+1<<" array:= "; //step mode
for (k=0;k<Size;k++)
cout<<a[k]<<" ";
cout<<endl;
}
}
Анализ сортировки простым выбором показывает, что число сравнений элементов массива не зависит от начального положения элементов в массиве и равно
.
Число
требуемых перестановок элементов
зависит от начального положения
элементов в массиве и
Описание
программы
В файле sortirovka.cpp находится исходный код.
Программа начинается с задания размера массива (Size) и максимального значения элементов массива (AMax), причем, если ввод данных будет некорректным, предусмотрен выход из программы с выдачей соответствующего сообщения.
Затем пользователь должен выбрать способ заполнения массива (нажать 1, если задавать массив с помощью датчика случайных чисел; нажать 2, если с клавиатуры).
При нажатии «1» функция createMas(Size,AMax,a) создает массив а, имеющий размер Size, и элементы которого не превышают значение Amax.
При нажатии «2» пользователь должен задать значения элементов массива с клавиатуры, причем они должны входить в диапазон 1..Amax.
Выдаются значения исходного массива.
С помощью функции selection(Perm,Size,a) массив а сортируется по возрастанию. На экране пошагово отображается все перестановки в массиве.
Выдается
отсортированный массив, а так
же значения числа сравнений и
числа перестановок (Perm).
Программа была протестирована на различных массивах и с 3мя видами приращений.
Были проверены возможные случаи аварийного завершения программы, проверка корректности ввода данных, для чего в исходные данные вводилась ошибка: буква, числа, сильно превышающее границы ввода.
Результаты работы программы предоставлены в таблице 3.1 (под результатами понимается отсортированный массив, количество сравнений и перестановок)
Таблица
3.1 Обобщенные примеры работы программы.
Входные данные (n, mas[]) | Результат |
6
5 1 12 9 6 4 |
1 4 5 6 9 12
Kolichesto sravnenij: 15 kolichestvo perestanovok: 4 |
8
2 7 4 13 4 8 9 11 |
2 4 4 7 8 9 11 13
Kolichesto sravnenij: 28 kolichestvo perestanovok: 6 |
8
5 1 12 9 6 4 3 3 |
1 3 3 4 5 6 9 12
Kolichesto sravnenij: 28 kolichestvo perestanovok: 6 |
Информация о работе Демонстрационная программа сортировки методом «выбора»