Основы объектно-ориентированного программирования на языке C# book | Page 36
2 Oснови алгоритмiзацiı̈
Часова складнiсть Oпис програм
O(1) Бiльшiсть операцiй у програмi викону-
ється або один раз, або не бiльш нiж фi-
ксовану кiлькiсть разiв. Будь-який ал-
горитм, що завжди вимагає (незалежно
вiд обсягу даних) одного й того самого
часу, має константну складнiсть.
O(N ) Час роботи програми обмежений лiнiй-
ною функцiєю вiд N. Властиво алгори-
тмам, якi виконують над кожним еле-
ментом вхiдних даних фiксовану кiль-
кiсть операцiй.
O(N 2 ), O(N 3 ), O(N k ) Полiномiальна складнiсть. O(N 2 ) – ква-
дратична складнiсть, O(N 3 ) – кубiчна
складнiсть. Час роботи програми обме-
жений полiномiальною функцiєю.
O(log(N )) Час роботи програми логарифмiчний.
Зустрiчається зазвичай у програмах,
якi дiлять велику задачу на маленькi й
розв’язують одну з них.
O(N log(N )) Такий час роботи мають алгоритми,
якi дiлять велику задачу на малень-
кi, а потiм, розв’язавши ı̈х, сполучають
розв’язки.
O(2 N ) Експоненцiальна складнiсть. Такi алго-
ритми найчастiше виникають унаслiдок
пiдходу, що має назву “метод грубоı̈ си-
ли”.
Табл. 2.1: Часова складнiсть
Якщо один цикл вкладено в iншiй та обидва мають однакову кiль-
кiсть повторень, то вся конструкцiя характеризується квадратичною
складнiстю.
Розглянемо алгоритм.
Алгоритм:
1. Для i = 1 до N виконувати
2. Для j = 1 до N виконувати
36