- •Курсовой проект
- •Содержание
- •2.2 Выходные данные
- •3. Методы решения задач
- •3.1 Понятие сортировки
- •3.2. Обменная сортировка
- •3.3. Пузырьковая сортировка
- •4. Описание программы
- •4.1 Используемые функции
- •5. Методика отладки программы
- •6.4.1. Выполнение функции открытия (загрузки) существующих данных
- •6.4.2. Выполнение функции записи (сохранения) существующих данных
- •6.6 Завершения работы программы
2.2 Выходные данные
Выходные данные формируются на основе записей памяти программы, вычисляемого поля result и выводятся на экран в виде таблицы (см. рис.1)
Имя переменной |
Назначение |
Тип |
Ограничения |
result |
Информация о результате тестирования |
int |
0\1 |
Таблица 2- Вычисляемое поле записи массива данных программы
3. Методы решения задач
3.1 Понятие сортировки
Сортировка представляет собой процесс упорядочения множества подобных информационных объектов в порядке возрастания или убывания их значений. Например, список i из n элементов будет отсортирован в порядке возрастания значений элементов, если i <= i <= ... <= i
Имеется два вида алгоритмов сортировки: сортировка массивов, которые могут находиться как в оперативной памяти, так и на диске в виде файла прямого доступа, и сортировка последовательных файлов, находящихся на дисках или магнитных лентах. Основное отличие между сортировкой массивов и сортировкой последовательных файлов заключается в том, что каждый элемент массива является доступным в любое время. Это значит, что в любое время любой элемент массива может сравниваться с любым другим элементом массива и любые два элемента массива могут обмениваться местами. Напротив, в последовательном файле в каждый момент времени доступен лишь один элемент. Из-за этих отличий методы сортировки существенно отличаются для этих двух видов сортировки.
В общем случае при сортировке данных только часть информации используется в качестве ключа сортировки, который используется в сравнениях. Когда выполняется обмен, передается вся структура данных. Например, в списке почтовых отправлений в качестве ключа сортировки может использоваться почтовый индекс, а в операциях обмена к почтовому индексу добавляются полное имя и адрес.
3.2. Обменная сортировка
Рассмотрим обменный (пузырьковый) метод сортировки: пусть задан список целых чисел (простейший случай) В=< K1, K2,..., Kn >. Требуется переставить элементы списка В так, чтобы получить упорядоченный список B'=< K'1, K'2,...,K'n >, в котором для любого 1<=i<=n элемент K'(i) <= K'(i+1). При обменной сортировке упорядоченный список В' получается из В систематическим обменом пары рядом стоящих элементов, не отвечающих требуемому порядку, пока такие пары существуют. Наиболее простой метод систематического обмена соседних элементов с неправильным порядком при просмотре всего списка слева на право .
B=<20,-5,10,8,7>, исходный список;
B1=<-5,10,8,7,20>, первый просмотр;
B2=<-5,8,7,10,20>, второй просмотр;
B3=<-5,7,8,10,20>, третий просмотр.
Нижеприведенная функция bubble производит сортировку входного массива методом обмена (см. Листинг 1) .
/* сортировка обменным методом */ float * bubble(float * a, int m, int n) { char is=1; int i; float c; while(is) { is=0; for (i=m+1; i<=n; i++) if ( a[i] < a[i-1] ) { c=a[i]; a[i]=a[i-1]; a[i-1]=c; is=1; } } return(a); }
|
Листинг 1 - Обменная сортировка