- 1
Федеральное бюджетное государственное образовательное учреждение
Высшего профессионального образования
Кафедра автоматизированных систем управленияОтчет к лабораторной работе
Сортировка методом подсчетаРуководитель: Бакусова Наталья Сергеевна
Разработал: Давлетов Даниил Альбертович
Уфа, 2015
Содержание
Постановка задачи
Математическая модель
Текст программы
Руководство пользователя
Заключение
Список литературы
Постановка задачи Целью работы является изучить методы сортировок. В результате работы должна быть написана программа, которая сортирует массив данных различного типа методом подсчета.
Математическая модельСортировка подсчётом - алгоритм сортировки, в котором используется диапазон чисел сортируемого массива (списка) для подсчёта совпадающих элементов.
Алгоритм сортировки состоит из следующих шагов:
) Просмотр исходного массива и подсчет количества элементов в этом массиве (количество сохраняется во вспомогательном массиве);
2) Просмотр вспомогательного массива и запись элементов в отсортированном порядке.
Идея сортировки заключается в том, что необходимо посчитать количество элементов в исходном массиве и дальше записать их в отсортированном порядке посчитанное число раз.
Свойства сортировки:
) Не является сортировкой сравнением: ни одна пара элементов не сравнивается друг с другом.
2) Требует дополнительную память под массив-счетчик.
Модификации сортировки подсчетом:
) Если известно, что в исходном массиве минимальный элемент равен - Min, а максимальный - Max, то вспомогательного массив достаточно создавать размером - Max-Min+1.
2) С помощью сортировки подсчетом можно сортировать знаковые типы. Например, при сортировке - signed char, принимающего значения от - 128 до 127, индексу - 0 во вспомогательном массиве будет соответствовать значение - 128, индексу - 1 - 127, …, индексу 255 - 127. Алгоритмическая модель
Текст программы#include
#include
#include
#include namespace std;Menu ();ForIntegerFromMinToMax ();ForIntegerFromMaxToMin ();ForSymbolsFromMinToMax ();ForSymbolsFromMaxToMin ();Exit ();main () {(1251);(1251);(*f [6]) () = {Menu, ForIntegerFromMinToMax, ForIntegerFromMaxToMin, ForSymbolsFromMinToMax, ForSymbolsFromMaxToMin, Exit};
int choice; // переменная для выбора пункта меню("_____\nМеню. \n1: Текст задачи\n");("2: Сортировка подсчетом для целых чисел (от меньшего к большему) \n");("3: Сортировка подсчетом для целых чисел (от большего к меньшему) \n");("4: Сортировка подсчетом для букв (по алфавиту) \n");("5: Сортировка подсчетом для букв (в обратном порядке) \n");("6: Выход\n_____\n");("\nВведите число от 1 до 6 включительно, выбрав пункт меню: ");
for (;;) {(scanf ("%d", &choice) ==0) {
printf ("\n\n\aОшибка! Неправильный тип данных. \nПожалуйста, введите число от 1 до 6 включительно: ");
fflush (stdin);
}break;
}(;;) {(choice>0 && choice
- 1
Похожие работы
Тема: Сортировка методом сцепления очередей. Поиск методом составных атрибутов |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Тема: Иммуноанализ методом подсчета частиц |
Предмет/Тип: Медицина, физкультура, здравоохранение (Реферат) |
Тема: Сортировка массивов методом вставок |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Тема: Сортировка массива методом Шелла |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Тема: Сортировка массива методом Шелла |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Интересная статья: Основы написания курсовой работы