Эта теорема позволяет оценить сверху асимптотику работы любого алгоритма, который использует идею разделяй и властвуй.

Определение

Все алгоритмы, использующие идею разделяй и властвуй, делят одну задачу размера n на a задач, которые в b раз меньше исходной, а потом объединяют все это за . Тогда их можно записать с помощью данной рекурренты:

aT(\frac{n}{b}) + \Theta(n^c), & n > n_{0}\\ \Theta(1), & n \leq n_{0} \end{cases}

где у нас есть решение для задач размера меньше за .

Это дерево рекурсии алгоритма при а = 2.

В общем теорема говорит: 1. При , 2. При , 3. При ,

Математическое доказательство

Разберем 3 варианта: 1. 2. 3. Рассмотрим дерево рекурсии, а точнее отдельный уровень в нем. На нем вершин, который являются задачами размера и обобщаются до предыдущего уровня за . Уровней у нас всего , если просуммировать по ним, используя эту формулу, то мы получим общую сложность: Теперь становится понятно разделение на 3 варианта, в первом у нас получатся сумма убывающей геометрической прогрессии, которая ограничена сверху константой, а значит общая сложность будет равна . Во втором случае у нас получается формула: А значит все будет работать за В третьем же случае у нас сумма возрастающей геометрической прогрессии, которая асимптотически равна своему старшему члену, а значит:

В этом случае итоговая сложность алгоритма выйдет .

Примеры

Рассмотрим сортировку слиянием. В ней a = 2, b = 2, а c = 1, а значит асимптотика работы этого алгоритма равна .