Основы объектно-ориентированного программирования на языке C# book | Page 38
2 Oснови алгоритмiзацiı̈
A B
C
3 4
5
5 12 13
8 15 17
7 24 25
20 21 29
12 35 37
9
40 41
28 45 53
11 60 61
Табл. 2.3: Трiйки Пiфагора
3. next = small
4 Поки next ≤ n виконуват
Початок
5. last = next
6. Поки last < n виконувати
Початок
7. Якщо last ≤ 2 ∗ small i next ≤ 2 ∗ small i last ∗ last = small ∗
small + next ∗ next
8. то
друк(small) друк(next) друк(last)
9. last = last + 1 кiнцеь циклу last
10. next = next + 1 кiнець циклу next
11. small = small + 1 кiнець цику small
12. Кiнцеь
Вихiд: роздрукованi значення small, next, last.
Легко перевiрити, що складнiсть алгоритму становить O(N 3 ).
Проаналiзувавши програму, можна дiйти висновку, що основну оцiн-
ку складностi забезпечують вкладенi цикли. Тому для зменшення
складностi, перш за все, можна спробувати зменшити глибину вкла-
деностi циклiв. Далi слiд розглянути можливiсть скорочення кiлько-
стi операторiв у циклах з найбiльшою глибиною вкладеностi. Oднак
цi рекомендацiı̈ не завжди можна виконати.
38