Реферат: Сортировка массивов методом вставок

Реферат: Сортировка массивов методом вставок




🛑 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Министерство Образования и Науки Украины
Национальный Аэрокосмический Университет
„Программирование и алгоритмические языки”

„СОРТИРОВКА МАССИВОВ МЕТОДОМ ВСТАВОК”


1. Постановка задачи ……………………………………………………………… 3
2. Теоретическое обоснование и алгоритм решения задачи …………………… 3
3. Пример работы программы ……………………………………………………. 4
4. Исходный код программы с комментариями …………...……………………. 9
5. Список литературы …………………………………………………………… 13
6. Приложение 1: блок-схема программы ……………………………………... 14
7. Приложение 2: блок-схема функции сортировки (SortByIncrease()) ……… 15
Упорядочить массив x по убыванию или возрастанию (т.е. переставить его элементы так чтобы для всех k выполнялось x k
<=x k-1
или x k
>=x k-1
соответственно), используя следующий алгоритм сортировки (упорядочивания):
сортировка вставками

:
пусть первые k
элементов массива уже упорядочены по не убыванию; берется ( k
+1)-й элемент и размещается среди первых k
элементов так, чтобы упорядоченными оказались уже k
+1 первых элементов; этот метод применяется при k
от 1 до n-1.
· В программе должны использоваться функции, для которых следует явно сопоставить прототипы (объявления, описания), определения и вызовы.
· Как минимум в одной функции должны быть параметры по умолчанию и соответственно в программе должны быть вызовы такой функции в разной форме.
· Доступ к элементам массива по [] и *.
· Заполнение массива случайным образом.
· Программа должна создаваться из проекта, содержащего несколько файлов исходного кода (*.h, *.срр).
· Должны использоваться уловная компиляция (стражи включения).
· Программа должна иметь дружественный интерфейс - основные операции должны вызываться через соответствующие элементы текстового меню.
· Итерации в текстовый файл отчета.
· Передача имени файла отчета в командной строке.
· Считывание исходных данных из файла.
· Использование параметров командной cтроки.
«Сортировка при помощи прямого включения»

Метод основывается на следующем: считается, что перед рассмотрением записи R[j] предыдущие записи R[1],R[2],...,R[j-1] уже упорядочены, и R[j] вставляется в соответствующее место. Сортировка таблицы начинается со второй записи. Ее ключ сравнивается с ключом первой записи, и, если упорядоченность нарушена, то записи R[1] и R[2] переставляются. Затем ключ записи R[3] сравнивается с ключами записей R[2] и R[1]. Как только программа обнаруживает, что (j+1)-й элемент массива меньше (при сортировке по возрастанию) j-го элемента, она копирует значение этого элемента в буферную переменную и с начала массива до j анализирует, пока значение буферной переменной не будет меньше какого-либо элемента х. Затем кусок массива, начиная с х и до j, перемещается на одну ячейку в сторону возрастания, и на образовавшееся место х записывается значение перемещаемого элемента. Дальше продолжается перемещение по основному массиву до элемента n-1 (т.к. мы сравниваем j-й и (j+1)-й элементы):
Программа прелагает нам выбрать один из пунктов меню для выполнения соответствующей операции. Итак, выбираем 1:
Введем желаемое количество элементов массива.
Массив создан. Теперь можно вывести массив на экран, добавить некоторое количество элементов, найти какой-либо элемент по значению и т.д. Выведем массив на экран.
Также эта программа предоставляет возможность удалить какой-либо элемент, введя его порядковый номер. Допустим, мы хотим удалить элемент под номером 7 со значением 89, затем выведем снова массив на экран:
Теперь добавим 6 элементов к существующему массиву:
В программе реализована функция чтения из файла. Если задано три параметра запуска программы, то она принимает argv[2], как название файла, из которого будет происходить считывание информации. Если же задано меньшее количество параметров, то InsetSort предложит ввести названии файла в течении выполнения программы.
Перед выбором пункта 7 (Open File) необходимо очистить массив (пункт 6), иначе программа сигнализирует об ошибке. А после выбора элемента меню 7 введем название считываемого файла данных, если это необходимо.
(Первым элементом файла должно быть число, значение которого равно количеству элементов в файле.) Проделаем вышеуказанные действия и выведем результат на экран:
При выборе пункта 9 у нас будет возможность отсортировать массив элементов, как по возрастанию, так и по убыванию. Например, отсортируем существующий массив по возрастанию и выведем результат на экран:
В итоге мы получили отсортированный массив и массу удовольствия при работе в этой чудотворной программе. А кроме этого еще и файл отчёта, в который были записаны все шаги к полной сортировке массива.
Помните
, что файл будет создан только после корректного завершения программы InsetSort.
Исходный код программы с комментариями

----------------------------------------------------------------- MAIN.CPP

////////////////////MAIN/////////////////////
int bool=0;//Ïåðåìåííàÿ, ïðèíèìàþùàÿ äâà çíà÷åíèÿ.(Äëÿ âûõîäà)
if (argc>1)//Åñëè çàäàí ïàðàìåòð, òî ïðèíÿòü åãî
strcpy(fname,argv[1]);//êàê íàçâàíèå äëÿ ôàéëà îò÷åòà.
strcpy(foname,argv[2]);//Âòîðîé àðãóìåíò - äëÿ ÷òåíèÿ.
f.open(fname);//Ñîçäàíèå è ïîäãîòîâêà ôàéëà ê çàïèñè.
bool=menu();//Áàçîâàÿ ôóíêöèÿ ïðîãðàììû.
f.close();//Çàêðûòèå ôàéëà è çàïèñü íà ÆÄ.
cout<<"InsetSort. v 0.3 (C) 2003-2004 Created by Chaplygin Vasilij.";
////////////////////MENU////////////////////
if (i<0 || i>9) cout<n)) cout<2) cout<Реферат: Сортировка массивов методом вставок
Написать Сочинение Про Город
Доклад по теме Музей-заповедник "Павловск"
Реферат Про Волейбол На Українській Мові
Реферат: Японские комиксы и анимация
Реферат На Тему Виды И Жанры Музыки
Курсовая работа по теме Фонд заработной платы
Реферат: Eduational Research Foundation Essay Research Paper Educational
Отчеты По Практике Туризм Примеры
Воспитатели Дипломные Работы
Доклад: Божественный Веспасиан
Подготовка учителя к уроку
Домашнее Сочинение По Произведению Фонвизина Недоросль
Реферат по теме Дифференцированные уровнения
Экология Биоресурсы И Свободное Время Эссе
Дипломная работа: Мировой опыт и российская практика функционирования фондовых бирж
Мини Сочинение О Богатырях
Арбитражный Процесс Рефераты
Дипломная работа по теме Системный подход в изучении кризиса трех лет в развитии ребенка
Курсовая работа по теме Учет движения нематериальных активов
Дипломная работа по теме Разработка интернет-приложения для работы с клиентами 'КСС-СЕРВИС'
Реферат: История болезни - педиатрия (хронический пиелонефрит)
Статья: Балансовый метод оценки ЭЗ
Реферат: Загадка о человеке

Report Page