Види алгоритмів і приклади

Поняття алгоритму

Комп’ютер не вміє вирішувати завдання, він здатний виконувати прості дії в зазначеному порядку. “Як же калькулятор?” – запитаєте ви. Він теж є плодом праці програмістів, які створили програму, що використовує певні алгоритми для одержання необхідних результатів. Розглянемо абстрактну ситуацію. Що слід зробити, якщо попросити знайти корені квадратного тричлена людини, яка не знайома з методами рішення рівнянь?

Очевидно, що його необхідно навчити вирішувати квадратні рівняння. Відбувається це за наступною схемою:

  • Вибрати спосіб вирішення.
  • Вивчити всі деталі обраного способу.
  • Пояснити перші два пункти майбутньому виконавцю на зрозумілій йому мові.
  • Потім можна буде давати виконавцю завдання на розв’язування квадратного рівняння. І якщо перші два кроки прості і зрозумілі – всі способи вирішення описані у відповідній літературі, то третій крок представляє складність.

    Як можна гарантувати, що ідеї, які використовуються при розв’язанні задачі, будуть сприйняті виконавцем так само, як ви це розумієте? Тут ми впритул підходимо до поняття алгоритму. Практика показує, що для правильного пояснення чого-то кому-то необхідно дотримуватися наступні кроки:

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

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