Написать рефераты, курсовые и дипломы самостоятельно.  Антиплагиат.
Студенточка.ru: на главную страницу. Написать самостоятельно рефераты, курсовые, дипломы  в кратчайшие сроки
Рефераты, курсовые, дипломные работы студентов: научиться писать  самостоятельно.
Контакты Образцы работ Бесплатные материалы
Консультации Специальности Банк рефератов
Карта сайта Статьи Подбор литературы
Научим писать рефераты, курсовые и дипломы.


Воспользуйтесь формой поиска по сайту, чтобы найти реферат, курсовую или дипломную работу по вашей теме.

Поиск материалов

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

Программирование

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

Задание:

Упорядочить массив 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

^ 10 41 54 66 27 42 80 61 43 37

^ 10 27 41 54 66 42 80 61 43 37

^ 10 27 41 42 54 66 80 61 43 37

^ 10 27 41 42 54 61 66 80 43 37

^ 10 27 41 42 43 54 61 66 80 37

^ 10 27 37 41 42 43 54 61 66 80

см. приложение 2.

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

Запускаем программу InsetSort:

Программа прелагает нам выбрать один из пунктов меню для выполнения соответствующей операции. Итак, выбираем 1:

Введем желаемое количество элементов массива.

Массив создан. Теперь можно вывести массив на экран, добавить некоторое количество элементов, найти какой-либо элемент по значению и т.д. Выведем массив на экран.

Также эта программа предоставляет возможность удалить какой-либо элемент, введя его порядковый номер. Допустим, мы хотим удалить элемент под номером 7 со значением 89, затем выведем снова массив на экран:

Теперь добавим 6 элементов к существующему массиву:

В программе реализована функция чтения из файла. Если задано три параметра запуска программы, то она принимает argv[2], как название файла, из которого будет происходить считывание информации. Если же задано меньшее количество параметров, то InsetSort предложит ввести названии файла в течении выполнения программы.

Перед выбором пункта 7 (Open File) необходимо очистить массив (пункт 6), иначе программа сигнализирует об ошибке. А после выбора элемента меню 7 введем название считываемого файла данных, если это необходимо.

(Первым элементом файла должно быть число, значение которого равно количеству элементов в файле.) Проделаем вышеуказанные действия и выведем результат на экран:

При выборе пункта 9 у нас будет возможность отсортировать массив элементов, как по возрастанию, так и по убыванию. Например, отсортируем существующий массив по возрастанию и выведем результат на экран:

В итоге мы получили отсортированный массив и массу удовольствия при работе в этой чудотворной программе. А кроме этого еще и файл отчёта, в который были записаны все шаги к полной сортировке массива.

Помните, что файл будет создан только после корректного завершения программы InsetSort.

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

1. Лафоре Р. Объектно-ориентированное программирование в С++, 4-е изд. - СПб.: Питер, 2003. - 928 с.: ил.

2. Дейтел Х.М., Дейтел П.Дж. Как программировать на С++.. - М.: Бином, 1999. - 1024 с.

3. Страуструп Б. Язык программирования С++, 3-е изд. - СПб.; М.: Невский Диалект - Бином, 1999. - 991 с.

4. Керниган Б., Ритчи Д. Язык программирования Си.\Пер. с англ., 3-е изд., испр. - СПб.: "Невский Диалект", 2001. - 352 с.: ил.

Примечание 1.

Примечание 2.


Описание предмета: «Программирование»

Программирование - процесс подготовки задач для их решения с помощью компьютера; итерационный процесс составления программ.

Программное обеспечение - комплекс программ: - обеспечивающих обработку или передачу данных; - предназначенных для многократного использования и применения разными пользователями.

По видам выполняемых функций программное обеспечение подразделяется на системное, прикладное и инструментальное.

Литература

  1. С.М. Белозеров. Организация внутреннего мира человека и общества. Теория и метод композиций. – СПб.: Алетейя, 2002. – 768 с.
  2. Хозе Сильва, Роберт Б.Стоун. Искусство менеджмента по методу Сильва. Теория и практика самого успешного менеджмента. – М.: Попурри, 2003. – 288 с.
  3. С.А. Белановский. Метод фокус-групп. – М.: Никколо-Медиа, 2001. – 280 с.
  4. Брайан Трейси. Эффективные методы продажи по Брайану Трейси. – М.: Попурри, 2002. – 240 с.
  5. К.А. Багриновский, М.А. Бендиков, Е.Ю.Хрусталев. Современные методы управления технологическим развитием. – М.: Российская политическая энциклопедия, 2001. – 272 с.
  6. И.Н. Подольский. Печать на ПК слепым десятипальцевым методом. – М.: Наука и техника, 2006. – 80 с.
  7. Методы поддержки принятия решений. – М.: Едиториал УРСС, 2001. – 72 с.
  8. В.А. Абчук. Экономико - математические методы. – М.: Союз, 1999. – 320 с.
  9. С.А. Жданов. Методы и рыночная технология экономического управления. – М.: Дело и Сервис, 1999. – 272 с.
  10. Методы и измерительные приборы для моделирования и натурных исследований нелинейных деформационно-волновых процессов в блочных массивах горных пород. – М.: Издательство СО РАН, 2007. – 331 с.
  11. Т.А. Андреева. Программирование на языке Pascal. – М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2013. – 240 с.
  12. Т.А. Панюкова, А.В. Панюков. Языки и методы программирования. Путеводитель по языку С++. – М.: Либроком, 2015. – 216 с.
  13. Лев Вениаминович Маковский und Виктор Валерьевич Кравченко. Компенсационное нагнетание в тоннелестроении. – М.: LAP Lambert Academic Publishing, 2014. – 68 с.
  14. В.А. Касторнова. Структуры данных и алгоритмы их обработки на языке программирования Паскаль. – СПб.: БХВ-Петербург, 2016. – 304 с.
  15. Н.А. Тюкачев, В.Г. Хлебостроев. C#. Алгоритмы и структуры данных. Учебное пособие (+ CD). – СПб.: Лань, 2017. – 232 с.
  16. Т.А. Макаровских, А.В. Панюков. Языки и методы программирования. Путеводитель по языку С++. – М.: Ленанд, 2018. – 216 с.
  17. Н.А.Тюкачев, В.Г.Хлебостроев. C#. Алгоритмы и структуры данных. Учебное пособие. (+ CD). – СПб.: Лань, 2018. – 232 с.


Образцы работ

Тема и предметТип и объем работы
Методы сглаживания временных рядов
Математические методы в экономике
Реферат
13 стр.
Сравнительная оценка методов математического моделирования в управлении производством
Математические методы в экономике
Реферат
18 стр.
Выбор варианта решения по критерию функции желательности
Методы принятия решений
Реферат
11 стр.
Банковская система России: современные проблемы и перспективы развития
Математические методы в экономике
Диплом
91 стр.



Задайте свой вопрос по вашей проблеме

Гладышева Марина Михайловна

marina@studentochka.ru
+7 911 822-56-12
с 9 до 21 ч. по Москве.

Внимание!

Банк рефератов, курсовых и дипломных работ содержит тексты, предназначенные только для ознакомления. Если Вы хотите каким-либо образом использовать указанные материалы, Вам следует обратиться к автору работы. Администрация сайта комментариев к работам, размещенным в банке рефератов, и разрешения на использование текстов целиком или каких-либо их частей не дает.

Мы не являемся авторами данных текстов, не пользуемся ими в своей деятельности и не продаем данные материалы за деньги. Мы принимаем претензии от авторов, чьи работы были добавлены в наш банк рефератов посетителями сайта без указания авторства текстов, и удаляем данные материалы по первому требованию.

Контакты
marina@studentochka.ru
+7 911 822-56-12
с 9 до 21 ч. по Москве.
Поделиться
Мы в социальных сетях
Реклама



Отзывы
Марина
Сдала диплом после вашего сопровождения на "хорошо". Огромное спасибо, вы мне очень помогли!