Розробити алгоритм та написати програму обчислення множини:
Проектування рішення задачі
Проект рішення задачі представляється в формі принципової блок-схеми.
Обчислення: = M4Вхід: M1,M3Вихід: M4 |
Процедура RIZ |
і | Невідсортований список,(А) | Відсортований список,(В) |
0 | 7, 2, 21, 17, 6, 1, 13, 5, 8. | |
1 | 2, 21, 17, 6, 1, 13, 5, 8. | 7 |
2 | 21, 17, 6, 1, 13, 5, 8. | 2, 7 |
3 | 17, 6, 1, 13, 5, 8. | 2, 7, 21 |
4 | 6, 1, 13, 5, 8. | 2, 7, 17, 21 |
5 | 1, 13, 5, 8. | 2, 6, 7, 17, 21 |
6 | 13, 5, 8. | 1, 2, 6, 7, 17, 21 |
7 | 5, 8. | 1, 2, 6, 7,13, 17, 21 |
8 | 8. | 1, 2, 5, 6, 7,13, 17, 21 |
9 | 1, 2, 5, 6, 7, 8, 13, 17, 21 |
2.5.1.3. Алгоритм рішення задачі.
Алгоритм процедури SYS.
Алгоритм призначений для впорядкування чисел методом простого виключення.
Вхід: А- масив невідсортуваних даних;
n- кількість елементів масиву.
Вихід: В- масив відсортуваних даних.
Трудоємність алгоритма .
Крок 1: Визначити перші два елемента масива В.
Крок 2: Організувати цикл по
, .Крок 3: Провірити умови
Якщо умова виконується, то .Перехід на крок 6.
Крок 4: Організувати цикл по
, де (для індексації решти елементів масива В).Крок 5: Провірити умови
. Якщо вона виконується, то елементи масива В зміщуються на один розряд вправо з до . Присвоїти .Крок 6: Завершення циклу по
.Крок 7:Кінець.
2.5.1.4. Блок-схема.
так
ні
так
Мал.3. Блок-схема процедури SYS.
2.5.2. Опис процедури OBED.
2.5.2.1. Постановка задачі.
Задані дві множини A={а
,а ,..,а }, В={b ,b ,..,b }.Потрібно отримати множину С=А
В.2.5.2.2. Математична модель
Об’єднання визначається наступним чином
.2.5.2.3. Алгоритм рішення задачі.
Алгоритм вирішення задачі базується на методі злиття двох множин. Приведемо загальний опис вирішення алгоритму задачі.
1
2
3
4
Блок 1:використовуємо ProcedureSYS ,яка описана в лабораторній pоботі №1.
Блок 2,3: не відсортовані масиви; відсортовані масиви.
Блок 4: алгоритм OBED
Алгоритм OBED:
Призначений для об’єднання двох відсортованих множин А і В з використанням методу злиття.
Крок1. Присвоїти
, j=1, ;Крок2. Перевірити умову
: якщо так, то: к=к+1,с = ,і=і+1;Крок3. Перевірити умову
; якщо так, то перехід на крок 2;інакше: записати в кінці масиву С елементи масиву В,
які залишились нерозглянуті; кінець.
Якщо
,то перехід на крок 4;Крок4. Перевірити
;якщо так, то: к=к+1, с =b ,j=j+1Крок5. Перевірити умову j
; якщо так, то перехід на крок 2;