.

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

Язык: русский
Формат: реферат
Тип документа: Word Doc
0 684
Скачать документ

Министерство Образования и Науки Украины

Национальный Аэрокосмический Университет

им. Н. Е. Жуковского “ХАИ”

Кафедра 302

Домашнее задание по курсу

„Программирование и алгоритмические языки”

по теме:

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

Выполнил:

студент 326 группы

Чаплыгин В. И.

Проверил:

Момот М. А.

Харьков

2003

Содержание

Постановка задачи ……………………………………………………………… 3

Теоретическое обоснование и алгоритм решения задачи …………………… 3

Пример работы программы ……………………………………………………. 4

Исходный код программы с комментариями …………………………………. 9

Список литературы …………………………………………………………… 13

Приложение 1: блок-схема программы ……………………………………… 14

Приложение 2: блок-схема функции сортировки (SortByIncrease()) ……… 15

Постановка задачи

Задание:

Упорядочить массив x по убыванию или возрастанию (т.е. переставить его
элементы так чтобы для всех k выполнялось xk=xk-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)-й элементы):

41 54 10 66 27 42 80 61 43 37

^ ?eX ae ae e e i i : V n v c ? O e 2fjv??°aee V ? ? I O O a ae th "i ? o o oe o u ue th hUe hUe ho w? a$gdae|3 aJ aJ (???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ??????????????????????????????? ???????? ???? ??????????? ?????????????????????????????????????????????????????? ???? ????????????????????? ???????????? ??????????????????????????? ???????????????????????? ??????????????????????????? ?????????????????????? ??????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????? ????????????????? ????????????????????? ?????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????? ??????????????????????? ???????????????????? ??????????????????????? ?????? ???? ??????????? ???????? ???????????????????????????????????????????????????????????????????????? ?? ????????????????? ??????????????????????????????????? ?????????????????? ???????????????? ??????????????????????????????????????????????? ??????????????????? ???????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????? ????????????????????????????????????????????????? ???? ??????? ???????????????? ??????????????????????????????????????????????? ??????????????????????????????????????????? ????????????????????? ?????????????????????? ?????????????????? ???????????????????????? ???????????????? ????????????????????? ? ? ???????????????????????????????????????????????? ??????????????????? ??????????????????????????????????????????? ??????? ??? ??????? ?????????????????????? ??????????????????????????????????????????????? ????????????????????????????????????????????? ????????????????????? ?????????????????????????? ?????????????????? ???????????????????????????? ???????????????? ????????????????????? ?????? ? ???????????????????????????????????????????????? ????????????????? ????????????????????????????????????????????? ????? ??????????? ??????????????????????? ???????????????????????? ????????????????????????? ??????????? ? ? ???????????????????????????????????????????????? ????????????????????? ????????????????????????????????????????????? ????? ???????????????????????????????????????? ??????? ??? ??????? ???????????????????????????????????????????????????? ????????????????????? ??????????? ??????????????????????????? ?????????????????? ?????????? ???? ? ? ?????????????????????????????????????????????????? ???????????????? ????????????????????????????????????????????? ????? ???????????????????????? ????????????????????? ?????????????????????? ???????? ? ? ?????????????????????????????????????????????????? ??????????????????? ????????????????????????????????????????????? ????? ?????????????????????????????????????????????????????? ?????????????????? ???????????????????????? ?????????????????? ?????????????????????????????????????????????????? ?????? ???????????????????????????????????????????????????????????????????????? ? ??????????? ? ? ?????????????????????????????????????????????????? ??????????????? ????????????????????????????????????????????? ????? ????????????????????????????????? ????????????????????????????????????????? ??????????????????????????????????????????????? ?????? ?????????????????????? ?? ? ??????? ???????????????????????????????????????????????????????? ???????????????????? ?????????? ??????????????????????????? ??????????????????? ??????????????????????????? ??????????????????? ? ???? ?? ????????????????????????????????????????????????? ?????????????????????? ???????? ???????????????????????????? ????????????????????????? ??????????? ??????????????? ???????????????????????????? ?????????????????? ????????????????????????? ???????????????????? ????????????? ?????? ??????????????? ??????????????????? ???????????????????????? ???????????????????????????? ??????????? ? ????????????????????????????????????????????????? ?????????????????????? ???????? ???????????????????????????? ????????????????????????? ??????????? ??????????????? ???????????????????????????? ?????????????????? ????????????????????????? ???????????????????? ????????????? ?????? ??????????????? ??????????????????? ???????????????????????? ???????????????????????????? ??????????? ? ????????????????????????????????????????????????? ?????????????????????????? ???????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????? ?????? ?????????????????? ???????????????????????????????? ???????????????????????????? ?????????????? ???????????? ????????????????????????????? ???????????????????????????????????????? ????? ?????? ?????? ???????????????????????? ???????????????? ????????????????? ????????????? ???? ? ??????????????? ? ? ???????????????????????????????????????????????????????????????????????? ?? ?????????????????????????????? ???????????????? ???????????????? ????????????????????? ???????????????????? ??????????????????? ???????????????????? ??????????????????? ????????????????? ??????????????????????? ???????????????????? ??????????????????? ??????????????????? ????????????????? ????????????????????? ???????????????? ????????????????? ??????????????????? ??????????????? ?????????????????????? ?????????????????????? ????????????????????????????????? ?????? Список литературы Лафоре Р. Объектно-ориентированное программирование в С++, 4-е изд. - СПб.: Питер, 2003. – 928 с.: ил. Дейтел Х.М., Дейтел П.Дж. Как программировать на С++.. – М.: Бином, 1999. - 1024 с. Страуструп Б. Язык программирования С++, 3-е изд. - СПб.; М.: Невский Диалект - Бином, 1999. - 991 с. 4. Керниган Б., Ритчи Д. Язык программирования Си.\Пер. с англ., 3-е изд., испр. - СПб.: "Невский Диалект", 2001. - 352 с.: ил. Примечание 1. Примечание 2. PAGE PAGE - 9 -

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020