- •Разработка алгоритма сортировки одномерного массива
- •Методические указания к выполнению
- •Варианты заданий.
- •Разработка динамических структур данных
- •Методические указания к выполнению
- •Варианты заданий.
- •Разработка пмо для простейших методов решения систем обыкновенных дифференциальных уравнений
- •Разработка пмо для методов численного вычисления определенных интегралов
- •Разработка пмо для методов решения систем линейных уравнений
- •Разработка пмо для метода аппроксимации многочленами
Федеральное агентство по образованию
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
ФАКУЛЬТЕТ №7 «РОБОТЕХНИЧЕСКИЕ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ»
кафедра «Информационно-управляющие комплексы» (704)
Утверждено на заседании учебно-методического совета факультета №7
сентября 2009 г.
протокол №1
К.И.Сыпало
Варианты заданий и методические указания по выполнению КУРСОВЫХ работ по дисциплине
КомпЬЮТЕРНЫЕ ТЕХНОЛОГИИ
для специальности 160601
Обсуждено на заседании кафедры №704
сентября 2009 г.
протокол №
Москва, 2009
-
Разработка алгоритма сортировки одномерного массива
Постановка задачи: Требуется разработать программно-математическое обеспечение, реализующее алгоритм сортировки (в соответствии с вариантом задания) массива данных заданного типа по выбранному ключу.
Требования к ПМО: Структурно ПМО должно быть реализовано в виде интерфейсной части, обеспечивающей:
-
задание массива из формы приложения (посредством компонента TStringGrid);
-
определение ключа сортировки;
-
выбор файла с исходными данными (для пакетного режима работы);
-
запуск процесса сортировки;
-
выбор файла для сохранения результатов сортировки;
-
вывод результата сортировки,
а также предметной части, реализованной в виде класса, обеспечивающего:
-
формализацию алгоритма сортировки;
-
подсчет статистики (время сортировки, количество перестановок);
-
чтение исходного массива из текстового файла;
-
сохранение результатов сортировки в текстовом файле.
Методические указания к выполнению
Пусть есть последовательность a0, a1... an и функция сравнения, которая на любых двух элементах последовательности принимает одно из трех значений: меньше, больше или равно. Задача сортировки состоит в перестановке членов последовательности таким образом, чтобы выполнялось условие: ai <= ai+1, для всех i от 0 до n.
Возможна ситуация, когда элементы состоят из нескольких полей:
element = record x: <тип>; y: <тип>; end; |
Если значение функции сравнения зависит только от поля x, то x называют ключом, по которому производится сортировка. На практике, в качестве x часто выступает число, а поле y хранит какие-либо данные, никак не влияющие на работу алгоритма.
Существует большое количество алгоритмов сортировки. Рассмотрим параметры, по которым будет производиться оценка алгоритмов.
-
Время сортировки - основной параметр, характеризующий быстродействие алгоритма.
-
Память - ряд алгоритмов требует выделения дополнительной памяти под временное хранение данных. При оценке используемой памяти не будет учитываться место, которое занимает исходный массив и независящие от входной последовательности затраты, например, на хранение кода программы.
-
Устойчивость - устойчивая сортировка не меняет взаимного расположения равных элементов. Такое свойство может быть очень полезным, если они состоят из нескольких полей, как на рис. 1, а сортировка происходит по одному из них, например, по x.
Взаимное расположение равных элементов с ключом 1 и дополнительными полями "a", "b", "c" осталось прежним: элемент с полем "a", затем - с "b", затем - с "c". Взаимное расположение равных элементов с ключом 1 и дополнительными полями "a", "b", "c" изменилось.
-
Естественность поведения - эффективность метода при обработке уже отсортированных, или частично отсортированных данных. Алгоритм ведет себя естественно, если учитывает эту характеристику входной последовательности и работает лучше.
Основные используемые алгоритмы:
-
Сортировка выбором(SelectSort)
-
Сортировка пузырьком(BubbleSort) и ее улучшения
-
«Шейкерная» сортировка
-
Сортировка простыми вставками(InsertSort)
-
Cортировка Шелла (ShellSort)
-
Быстрая сортировка (QuickSort)
Подробно описание алгоритмов можно найти:
-
Д. Кнут. Сортировка и поиск: 3-й том «Искусства программирования на ЭВМ», М., Мир, 1978
-
http://algolist.manual.ru/sort/index.php