Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритми_МетодиОбчислень_Р1.doc
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
565.76 Кб
Скачать

1.4 Основні параметри, що характеризують роботу алгоритму

Для оцінки ефективності роботи алгоритму необхідно мати певні критерії. Одним із таких критеріїв – час роботи алгоритму, але він не єдиний. Іншою важливою характеристикою алгоритму є асимптотична складність алгоритму. Як раз асимптотична складність алгоритму визначає у підсумку розмір задачі, яку можна розв’язати за допомогою такого алгоритму. Якщо алгоритм обробляє вхідні дані розміром за час , де - деяка постійна величина, то складність такого алгоритму буде (читається «порядку ).

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

Допустимо, що у нашому розпорядженні є п’ять алгоритмів з наступними складностями:

Алгоритм

Складність алгоритму

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

.

Для с і с розмір вхідного масиву , а для алгоритму і відповідно , тобто алгоритм за одну секунду може обробляти масив розмірністю не більше десяти.

Допустимо, що швидкодія ЕОМ збільшилась у десять раз. Тоді . У табл. 1.1 показано як виростуть розміри задач, які можна розв’язати за одну секунду одну хвилину і за одну годину.

Таблиця 1.1 – Границі розмірів задач, що визначаються швидкістю росту складності

Алгоритм

Часова складність

Максимальний розмір задачі

1 с

1 хв.

1 год.

100

775

22

85

330

14

20

26

Замість ефекту збільшення швидкості обчислень розглянемо ефект від вибору дієвішого алгоритму.

Якщо за базу порівняння вибрати 1 хв., то, замінивши на можна розв’язати задачу у 46 раз швидше. У той же час десятикратне збільшення швидкості обчислень дає виграш у часі для алгоритму лише у два рази.

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