Міністерство Освіти і Науки України p>
Національний Аерокосмічний Університет ім. М. Є. Жуковського "ХАІ" p>
Кафедра 302 p>
Домашнє завдання з курсу p>
"Програмування та алгоритмічні мови" на тему: p>
"Сортування масиву методом вставок" p>
Виконав: студент 326 групи p>
Чаплигін В. І. p>
Перевірив: p>
Момот М. А. p>
Харків p>
2003 p>
Зміст p>
1. Постановка завдання ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3 p>
2. Теоретичне обгрунтування та алгоритм розв'язання задачі ... ... ... ... ... ... ... ... 3 p>
3. Приклад роботи програми ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 4 p>
4. Вихідний код програми з коментарями ... ... ... ... ... ... ... ... ... ... ... ... .... 9 p>
5. Список літератури ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13 p>
6. Додаток 1: блок-схема програми ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14 p>
7. Додаток 2: блок-схема функції сортування (SortByIncrease ()) ... ... ... 15 p>
Постановка завдання p>
Завдання:
Упорядкувати масив x за зменшенням або зростанням (тобто переставити йогоелементи так щоб для всіх k виконувалося xk = xk-1відповідно), використовуючи такий алгоритм сортування (впорядкування): сортування вставками: нехай перший k елементів масиву вже впорядкованіпо не зменшенню; береться (k +1)-й елемент і розміщується серед перших kелементів так, щоб впорядкованими виявилися вже k +1 перших елементів;цей метод застосовується при k від 1 до n-1. p>
Основні вимоги до програми: p>
. У програмі повинні використовуватися функції, для яких випливає явно зіставити прототипи (оголошення, описи), визначення та виклики. P>
. Як мінімум в одній функції мають бути параметри за замовчуванням і відповідно в програмі повинні бути виклики такої функції в різній формі. P>
. Використовувати всі цикли З ++. p>
. Доступ до елементів масиву по [] та *. p>
. Заповнення масиву випадковим чином. P>
. Програма повинна створюватися з проекту, що містить кілька файлів вихідного коду (*. h, *. срр). P>
. Повинні використовуватися умовного компіляція (варти включення). P>
. Програма повинна мати дружній інтерфейс - основні операції повинні викликатися через відповідні елементи текстового меню. P>
. Ітерації в текстовий файл звіту. P>
. Передача імені файлу звіту у командному рядку. P>
. Зчитування вихідних даних з файлу. P>
. Використання параметрів командного дані для. P>
Теоретичне обгрунтування методу p>
«Сортування за допомогою прямого включення» та алгоритм розв'язання задачі
Метод грунтується на наступному: вважається, що перед розглядом запису
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
^ >?; P>
?? ((??)){ p>
?? v ?>?; p>
?? ((??))?? V ?>?; p>
??? (???? '0;? 2)?? V ?>????????; p>
?'????????;} p>
???????? ??(?,???::????????); p>
?? (!??)?? V ?>*????[?]; p>
?++; p>
) p>
}//?? (! ??)... P>
) p>
) p>
------------------- ------------------------------------------------ p>
? v ??.? p>
//?? ™ ????? S? ?????? ®???? S ???. p>
#?????? __? v ??_? p>
#?????? __? v ??_? p>
#???? v?? p>
#???? v?? p>
#???? v?? p>
#???? v?? p>
#???? v?? p>
#???? v?? p>
?????? ???? ??????[ 20]; p>
//????????? ???????. p>
???? ???????????(); p>
???? "??????????(); P>
???? ?????????(); p>
???? ?????????????(); p>
???? ????????(); p>
???? ?????????(); p>
???? ???????????(); p>
???? ? v???? v (); p>
???? ??????????????(); p>
???? ??????????????(); p>
???? ????????(????? [20 ]'??????); p>
#????? p>
Список літератури p>
1. Лафоре Р. Об'єктно-орієнтоване програмування в С + +, 4-е изд. - p>
СПб.: Питер, 2003. - 928 с.: Ил. P>
2. Дейтел х.м., Дейтел П.Дж. Як програмувати на С + + .. - М.: Бином, p>
1999. - 1024 с. P>
3. Страуструп Б. Мова програмування С + +, 3-е изд. - СПб.; М.: Невский p>
Діалект - Бином, 1999. - 991 с.
4. Керніган Б., Рітчі Д. Мова програмування Сі.Пер. з англ., 3-еизд., испр. - СПб.: "Невський Діалект", 2001. - 352 с.: Ил. P>
p>
Примітка 1. P>
p>
Примітка 2. P>