Види алгоритму

Правила побудови алгоритмів

Перше правило - при побудові алгоритму перш за все необхідно задати безліч об'єктів, з якими буде працювати алгоритм. Формалізоване (закодування) представлення цих об'єктів має назву даних. Алгоритм приступає до роботи з певним набором початкових даних, які називаються вхідними, і в результаті роботи видає дані, що називаються вихідними. Таким чином, алгоритм перетворює вхідні дані у вихідні.

Друге правило - для роботи алгоритму займають пам'ять комп'ютера. У пам'яті розміщуються вхідні дані, з якими алгоритм починає працювати, а також проміжні дані і вихідні дані. Пам'ять є дискретної, тобто що складається з окремих осередків. Пойменована комірка пам'яті має назву змінної. У теорії алгоритмів розміри пам'яті не обмежуються,тобто вважається, що ми можемо надати Алгоритму будь-який необхідний для роботи обсяг пам'яті.

Практична робота з алгоритмами (програмування) починається з реалізації перших двох правил. У мовах програмування розподіл пам'яті здійснюється декларативними операторами (операторами опису змінних).

Третє правило - дискретність. Алгоритм будується з окремих кроків (дій, операцій, команд). Безліч кроків, з яких складено алгоритм, звичайно.

Четверте правило - детермінованість. Після кожного кроку необхідно вказувати, який крок виконується таким, або давати команду зупинки.

П'яте правило - збіжність (результативність). Алгоритм повинен завершувати роботу після кінцевого числа кроків . При цьому необхідно зазначити, що вважати результатом роботи алгоритму.

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

+ механічні алгоритми, або, інакше, детерміновані, жорсткі (на-приклад, алгоритм роботи машини, двигуна і т.п.).Механічний алгоритм задає певні дії, позначаючи їх в єдиній і достовірної послідовності, забезпечуючи тим самим однозначний потрібний чи потрібний результат, якщо виконуються ті умови процесу, завдання, для яких розроблено алгоритм;

+ гнучкі алгоритми:

- ймовірні (стохастичні) алгоритми дають програму рішення задачі декількома шляхами або способами, що приводять до ймовірного досягнення результату;

- евристичні алгоритми (від грец.еврика) - це алгоритми, в яких досягнення кінцевого результату програми дій однозначно не визначено, так само як не позначена вся послідовність дій, не виявлено всі дії виконавця. До евристичним алгоритмам відносять, наприклад, інструкції та приписи.У цих алгоритмах використовуються універсальні логічні процедури і способи прийняття рішень, засновані на аналогії, асоціаціях і минулому досвіді вирішення схожих завдань.

+ лінійні алгоритми - набори команд (вказівок), що виконуються послідовно в часі один за одним;

+ розгалужуються алгоритми - алгоритми, що містять хоча б одна умова, в результаті перевірки якого ЕОМ забезпечує перехід на один із двох можливих кроків;

+ циклічні алгоритми - алгоритми, що передбачають багаторазове повторення одного і того ж дії (одних і тих же операцій) над новими вихідними даними. До циклічним алгоритмам зводиться більшість методів обчислень, перебору варіантів;

+ допоміжні (підлеглі) алгоритми (процедури) - алгоритми, раніше розроблені і цілком використовувані при алгоритмізації конкретного завдання.У деяких випадках за наявності однакових послідовностей вказівок (команд) для різних даних з метою скорочення запису також виділяють допоміжні алгоритми.