Twierdzenie o rekurencji uniwersalnej jest twierdzeniem matematycznym pozwalającym w łatwy sposób znajdować ograniczenie asymptotyczne pewnej klasy funkcji zdefiniowanych rekurencyjnie.
Niech będą stałymi niezależnymi od i niech będzie funkcją asymptotycznie nieujemną, czyli przyjmującą wartości nieujemne dla wystarczająco dużych . Jeżeli funkcja dla jest zdefiniowana następująco:
to:
jeżeli istnieje stała dla której , to
jeżeli istnieje stała dla której to
jeżeli istnieje stała dla której i jeżeli dodatkowo spełniony jest warunek regularności, dla pewnej stałej dla dostatecznie dużych to
Tak zdefiniowane funkcje stanowią pewien schemat działania algorytmów typu „dziel i zwyciężaj” – problem o rozmiarze dzielony jest na podproblemów, każdy wielkości funkcja przedstawia koszt dzielenia problemu, oraz połączenia rozwiązań podproblemów.
Przypadki 1 i 3 rekurencji uniwersalnej polegają na rozstrzyganiu, która z funkcji czy rośnie wielomianowo szybciej, i funkcja ta stanowi wówczas dokładne oszacowanie rekurencji . W przypadku 2 funkcje te rosną w takim samym tempie wielomianowym, jednak z możliwym czynnikiem polilogarytmicznym. ma wówczas rozwiązanie zbliżone do tego wspólnego tempa wzrostu.
Twierdzenie o rekurencji uniwersalnej nie wyczerpuje wszystkich przypadków dla rekurencji w powyższej postaci. Nie znajduje ono zastosowania gdy funkcji i nie da się porównać asymptotycznie, np. gdy dla dowolnie dużych , i dla innych dowolnie dużych , . W przypadkach 1 i 3 tempa wzrostu funkcji i muszą różnić się o czynnik wielomianowy. Dodatkowo w przypadku 3 oprócz dominacji asymptotycznej wymagana jest pewna „regularność” funkcji . Intuicyjnie, warunek regularności może nie być spełniony, jeśli funkcja ta rośnie zbyt wolno lokalnie, mimo wystarczającego globalnego tempa wzrostu.
Przykłady rekurencji nierozwiązywalnych metodą rekurencji uniwersalnej