Постановка задачи Создать приложение, позволяющее
















Презентация к курсовой.ppt
- Количество слайдов: 16
Постановка задачи Создать приложение, позволяющее сортировать массив чисел по возрастанию методами Хоара и Шелла. Исходные данные вводятся либо из текстового файла, либо с клавиатуры, либо с помощью датчика случайных чисел (выбирается пользователем). Результаты выводятся на экран, а также записываются в файл вместе с исходными данными. Исследовать и сравнить времена сортировки двумя указанными методами. Представить на графике зависимость времени данных методов сортировки от количества элементов массива. Исходные данные для исследования задаются с помощью генератора случайных чисел. Использовать массивы с количеством элементов от 500 до 5000 с шагом 50. Результаты исследования (таблица зависимости времени сортировки от числа элементов) записываются в файл. Приложение должно содержать не менее трёх окон, а также текстовое меню в главном окне, позволяющее выполнять основные действия. Дополнительные требования к оформлению При помощи гистограммы визуализировать пошаговое изменение массива, введённого пользователем, в результате сортировки одним из методов.
Сортировка – один из наиболее сложных и важных для изучения алгоритмов. Во-первых, сортировка – это общая задача многих компьютерных приложений. Практически любой список ценнее, когда он отсортирован по какому-либо определенному принципу. Во-вторых, многие алгоритмы сортировки являются интересными примерами программирования, демонстрирующих важные методы: частное упорядочивание, рекурсия, объединение списков, сохранение двоичных деревьев в массивах. У каждого алгоритма сортировки есть свои преимущества и недостатки. Производительность различных алгоритмов зависит от типа данных, начального расположения, размера и значений. Важно выбрать тот алгоритм, который лучше всего подходит для решения конкретной задачи. Сортировка – одна из немногих задач с точными теоретическими границами производительности. Любой алгоритм сортировки, который использует сравнения, занимает по крайней мере, O(N*log. N) времени.
Метод Хоара Данный метод был предложен Ч. Э. Р. Хоаром в 1962 году и с тех пор внимательно изучался многими людьми. Быстрая сортировка особенно популярна ввиду легкости ее реализации. Это довольно хороший алгоритм общего назначения, который хорошо работает во многих ситуациях, и использует при этом меньше ресурсов, чем другие алгоритмы. В общем случае эффективность метода достаточно высока (слова «в общем случае» означают, что можно специально подобрать такие наборы данных, на которых данная сортировка будет малоэффективна), поэтому автор назвал его «быстрой сортировкой» . Опишем идею метода. В исходном массиве А выбирается некоторый элемент X (его называют «барьерным» ). Нашей целью является запись Х «на свое место» в массиве, пусть это будет место k, такое, чтобы слева от Х были элементы массива, меньшие или равные X, а справа — элементы массива, большие X. Число операций перемены местоположений элементов внутри массива значительно сократится, если менять местами далеко стоящие друг от друга элементы. Слева отыскивается первый элемент, который не меньше X, а справа первый элемент, который не больше X. Найденные элементы меняются местами. После первого же прохода все элементы, которые меньше X, будут стоять слева от X, а все элементы, которые больше X, — справа от X. Массив А будет иметь вид: (A[1], A[2], . . . , A[k - 1] ), A[k] = (X), (A[k + 1], . . . , A[n] ). В результате элемент A[k] находится на своем месте и исходный массив А разделен на две неупорядоченные части, барьером между которыми является элемент А [k]. Далее требуется отсортировать полученные части тем же методом до тех пор, пока в каждой из частей массива не останется по одному элементу, то есть пока не будет отсортирован весь массив.
Метод Шелла Суть сортировки: N элементов массива разбивается на K групп, причем в группе не более 2 элементов, элементы располагаются на расстоянии D друг от друга. D – шаг группы. Производится сортировка в группах. Шаг группы D уменьшается вдвое. Повторяются пункты 2 – 3 до тех пор, пока шаг не станет меньше 1 В разных вариантах метода Шелла может быть задана разная последовательность уменьшения шагов и способов определения начального значения D. Начальное значение шага D можно задать, как степень числа 2, таким образом, что D ≥ N/2. При больших значениях N время сортировки методом Шелла значительно меньше, чем в методе пузырька.
Блок-схема метода Хоара На представленной блок-схеме показан принцип работы метода Хоара
Блок-схема метода Шелла На представленной блок-схеме показан принцип работы метода Шелла
Сортировка массивов На представленной форме будет выполняться сортировка массива методами Хоара и Шелла с визуализацией в виде гистограммы
График зависимости На рисунке представлена форма, в которой будет графически показана зависимость времени данных методов сортировки от количества элементов массива
Об авторе На представленной форме содержится информация о программе и разработчике
Задание На этой форме отображено выполняемое задание
Форма «Теория метода Хоара»
Форма «Теория метода Шелла»
Пример работы программы
Инструкция для пользователя Ввести исходные данные из файла, с клавиатуры, или же датчиком случайных чисел. Для этого требуется выбрать соответствующий подпункт в меню на пункте «Задать массив» . При вводе массива из файла после открытия диалогового окна открытия файла выбрать *. txt файл с исходными данными (по-умолчанию файл «Массив. txt » ). При вводе массива с клавиатуры сначала ввести количество элементов массива, а затем поочередно все элементы. В пункте меню «Сортировать» выбрать метод сортировки и нажать на соответствующий пункт. Произвести запись результатов сортировки в *. txt файл нажатием в меню пункта «Сохранить массив» и выбором файла куда следует записать результаты сортировки (по-умолчанию файл «Массив. txt» ). Нажать на кнопку «График зависимости» . Ознакомится с графиком зависимости времени сортировки от количества элементов массива. На форме исследования нажатием на пункт меню «Сохранить в файл» , выбрать путь сохранения и имя файла (по-умолчанию файл «Исследование. txt » ). Просмотреть создавшейся текстовый файл, содержащий в себе таблицу сравнения эффективности методов сортировки. Ознакомится с информацией об авторе, о задании и о теории каждого из методов путём выбора соответствующего подпункта в меню «Справка» .
Вывод Ознакомившись с методами Хоара и Шелла, убедились, что метод Хоара намного эффективнее метода Шелла, так как сортирует элементы в массиве значительно быстрее. В отличии от метода Шелла, для метода Хоара количество элементов в массиве на время сортировки практически не сказывается. Данный вывод подтверждается полученным графиком зависимости времени сортировки от количества элементов массива, из которого видно, что при росте количества элементов в массиве кривая графика для метода Шелла устремляется вверх, а кривая графика для метода Хоара примыкает к оси абсцисс.
Список литературы Информатика: Учебник. – 3 -е перераб. Изд. /под ред. Проф. Макаровой. - Финансы и статистика, 2000. -768 с. : ил. Ананьев А. И. , Федоров А. Ф. Самоучитель Visual Basic 6. 0 – БХБ – Петербург, 2005. – 624 с. : ил. Карчевская М. П. , Рамбургер О. Л. , Бикмеев А. Т. Лабораторный практикум по дисциплине «Информатика» – Уфимский Государственный Авиационный Технический Университет, Кафедра ИИ, Версия 0. 8 beta; Уфа-2007. Измерение и представление информации: Практикум по дисциплине «Информатика» . Часть 1/ Уфимск. гос. авиац. техн. ун-т; Сост. : М. П. Карчевская, О. Л. Рамбургер. - Уфа, 2007. -27 с.

