Această întrebare are deja răspunsuri aici :
Răspuns
Un algoritm este polinomial (are timp de rulare polinomial) dacă pentru unele $ k, C > 0 $, timpul său de funcționare la intrările de dimensiunea $ n $ este cel mult $ Cn ^ k $. În mod echivalent, un algoritm este polinomial dacă pentru ceva $ k > 0 $, timpul său de rulare la intrările de dimensiunea $ n $ este $ O (n ^ k) $. Aceasta include liniară, pătratică, cubică și multe altele. Pe de altă parte, algoritmii cu timpi de funcționare exponențiali nu sunt polinomiali.
Există lucruri între ele – de exemplu, cel mai cunoscut algoritm pentru factoring rulează în timp $ O (\ exp (Cn ^ {1 / 3} \ log ^ {2/3} n)) $ pentru o constantă $ C > 0 $; un astfel de timp de rulare este cunoscut sub numele de sub-exponențial . Alți algoritmi ar putea rula în timp $ O (\ exp (A \ log ^ C n)) $ pentru unele $ A > 0 $ și $ C > 1 $, iar acestea sunt cunoscute sub numele de cvasi-polinom . Un astfel de algoritm a fost foarte recent revendicat pentru jurnal discret asupra caracteristicilor mici.
Comentarii
Răspuns
Rularea unui algoritm poate dura ceva timp de calcul. Depinde în principal de cât de complex este algoritmul. Informaticienii au realizat o modalitate de a clasifica algoritmul pe baza comportamentului său al numărului de operații pe care trebuie să le efectueze (mai multe operațiuni ocupă mai mult timp).
Una dintre acele clase prezintă complexitate polinomială în timp. De exemplu, complexitatea operațională este proporțională cu $ n ^ c $ în timp ce n este dimensiunea intrării și c este o constantă. Evident, numele vine din cauza $ n ^ c $ care este un polinom .
Există alte „tipuri” de algoritmi care ocupă timp constant, indiferent de dimensiunea intrării. Unii ocupă 2 $ ^ n $ timp (da, într-adevăr, de cele mai multe ori).
Tocmai l-am simplificat pentru profan și este posibil să fi introdus erori. Deci, citiți mai multe https://stackoverflow.com/questions/4317414/polynomial-time-and-exponential-time
Comentarii
Răspuns
În termeni profani, timpul de funcționare al algoritmului dvs.
Ordinea algoritmilor (creștere) poate fi în Big-oh (O), little-oh (o), omega (Ω) sau theta (Θ).
Dacă întâmpinați probleme la calcularea RR, consultați câteva întrebări pe care le-am pus înainte și votați dacă înțelegeți.
Spuneți că aveți o buclă for:
for(i=1 to n) x++
Ordinea sau complexitatea timpului acestei bucăți de cod este: O (n)
De ce big-oh? Pentru că dorim cel mai rău caz în care rulează această bucată de cod.
Citiți aici (acestea definesc complexitatea unui algoritm și vă informează despre cum se realizează algoritmii în timp polinomial):
http://en.wikipedia.org/wiki/NP_(complexity) http://en.wikipedia.org/wiki/NP-complete http://en.wikipedia.org/wiki/NP-hard
Rezumat:
http://www.multiwingspan.co.uk/a23.php?page=types
Comentarii