Типи алгоритмів

На початку 70-х років з'явилась теорія структурного програмування, яка сформувала методологію розробки та документування алгоритмів та програм. За своєю сутністю вона впроваджує методи системного підходу до створення та експлуатації програмного забезпечення ЕОМ.

 

Теорія структурування стверджує, що якою б складною не була задача, схема відповідної програми завжди може бути представлена у вигляді набору досить обмеженої кількості елементарних структур. Ці елементарні структури можуть з'єднуватись між собою у більш складні структури за тими ж елементарними схемами.

 

До базових належать три елементарні структури, які є функціонально повними, тобто алгоритм будь-якої складності може бути реалізований за допомогою цих конструкцій:

1) алгоритм послідовного типу (лінійний); цей алгоритм передбачає послідовне виконання якихось дій без умов та повторів*

2) алгоритм розгалуженого типу (типу "вибір"); він характеризується тим, що окремі дії можуть виконуватись або не виконуватись, залежно від умови; цей алгоритм можна розділити на 2 підтипи:

a) повний алгоритм розгалуженого типу; у цьому випадку, залежно від умови, виконуються або ті, або інші дії (альтернативні дії)*

так
ні

 

 


b) неповний алгоритм розгалуженого типу передбачає, залежно від умови, виконання або невиконання якихось дій* (

ні
так

 

 


Неповний алгоритм розгалуженого типу

 

3) алгоритм циклічного типу; відрізняється від попередніх тим, що якісь дії можуть повторюватись декілька разів (циклічно); циклічні алгоритми можна поділити на такі три підтипи:

a) цикл з ітераціями*; у цьому алгоритмі завжди є параметр циклу, тобто змінна, значення якої кожного разу збільшується або зменшується на якесь фіксоване число; причому, завжди відоме початкове та кінцеве значення параметра циклу, тобто кількість повторів (Рис. 4). В такому алгоритмі дуже часто використовується модифікатор.

так
ні

Цикл з ітераціями

b) цикл з попередньою перевіркою умови* виконання циклічних дій та невідомою кількістю повторів; значення змінної, від якої залежить умова виконання циклу, може приймати будь-яке значення (Рис. 5);

 

так
ні

 

 


Рис. 5. Цикл з попередньою перевіркою умови

 

c) цикл з перевіркою умови закінчення циклу після виконання дій* та невідомою кількістю повторів: значення змінної, від якої залежить умова виконання циклу, може приймати будь-яке значення (Рис. 6);

так
ні

 

 


Рис. 6.Цикл з перевіркою умови закінчення циклу після виконання дій

Приклад алгоритму сортування одномірного масиву А, який містить N елементів показано на рис. 7.