Полиномијално време
У теорији комплексности, полиномијално време се односи на време израчунавања проблема, где време, -{m(n)}-, није веће од полиномијалне функције величине проблема, -{n}-. Математички записано у нотацији великог О, ово значи где је -{k}- нека константа која може зависити од проблема. На пример, алгоритам за сортирање квиксорт за -{n}- бројева захтева највише операција. Стога му је потребно време , па се ради о алгоритму полиномијалног времена.
Математичари некада користе појам полиномијалног времена у односу на дужину улаза као дефиницију брзог рачунања, као супротност супер-полиномијалном времену, које се односи на све шта је спорије од тога. Експоненцијално време је пример супер-полиномијалног времена.
Класа комплексности проблема одлучивања који могу бити решени детерминистичком Тјуринговом машином у полиномијалном времену је позната као класа П. Класа проблема одлучивања чије се потенцијално решење може проверити у полиномијалном времену је се назива класом НП. Еквивалентно, НП је класа проблема одлучивања који се могу решити у полиномијалном времену недетерминистичком Тјуринговом машином (НП значи Недетерминистичко Полиномијално време).
Подкласе полиномијалног времена
- Константно време: -{O(1)}-
- Линеарно време: -{O(n)}-
- Квадратно време: -{O(n2)}-
- Кубно време: -{O(n3)}-
Алгоритми којима је потребно линеарно, логаритамско и константно време су бржи подскуп алгоритама који захтевају полиномијално време.