To pytanie ma już tutaj odpowiedzi :
Odpowiedź
Algorytm jest wielomianowy (ma wielomianowy czas działania), jeśli dla jakieś $ k, C > 0 $, jego czas działania na wejściach o rozmiarze $ n $ wynosi co najwyżej $ Cn ^ k $. Analogicznie, algorytm jest wielomianowy, jeśli dla jakiegoś $ k > 0 $, jego czas działania na wejściach o rozmiarze $ n $ wynosi $ O (n ^ k) $. Obejmuje to liniowe, kwadratowe, sześcienne i więcej. Z drugiej strony, algorytmy z wykładniczym czasem wykonywania nie są wielomianami.
Są rzeczy pomiędzy – na przykład najbardziej znany algorytm do faktorowania działa w czasie $ O (\ exp (Cn ^ {1 / 3} \ log ^ {2/3} n)) $ dla jakiejś stałej $ C > 0 $; taki czas działania jest znany jako podwykładniczy . Inne algorytmy mogą działać w czasie $ O (\ exp (A \ log ^ C n)) $ dla niektórych $ A > 0 $ i $ C > 1 $, a te są znane jako quasi-wielomian . Taki algorytm został niedawno zgłoszony dla dyskretnego dziennika o małych cechach.
Komentarze
Odpowiedź
Uruchomienie algorytmu może zająć trochę czasu obliczeniowego. Zależy to głównie od złożoności algorytmu. Informatycy stworzyli sposób, aby sklasyfikować algorytm na podstawie jego zachowania w zakresie liczby operacji, które musi wykonać (więcej operacji zabiera więcej czasu).
Jedna z tych klas wykazuje wielomianową złożoność czasową. To znaczy, złożoność operacyjna jest proporcjonalna do $ n ^ c $, podczas gdy n jest rozmiarem danych wejściowych, ac jest jakąś stałą. Oczywiście nazwa pochodzi od $ n ^ c $, który jest wielomianem .
Istnieją inne „typy” algorytmów, które zajmują stały czas, niezależnie od wielkości danych wejściowych. Niektóre zajmują 2 $ n $ czasu (tak, naprawdę przez większość czasu).
Trochę uprościłem to dla laika i mogłem wprowadzić błędy. Przeczytaj więcej https://stackoverflow.com/questions/4317414/polynomial-time-and-exponential-time
Komentarze
Odpowiedź
Mówiąc prostym językiem czas działania twojego algorytmu.
Kolejność algorytmów (wzrost) może być w Big-oh (O), little-oh (o), omega (Ω) lub theta (Θ).
Jeśli masz problemy z obliczeniem RR, przeczytaj kilka pytań, które zadałem wcześniej i zagłosuj, jeśli je rozumiesz.
Powiedz, że masz pętlę for:
for(i=1 to n) x++
Kolejność lub złożoność czasowa tego fragmentu kodu jest następująca: O (n)
Dlaczego big-oh? Ponieważ chcemy najgorszego przypadku, w którym działa ten fragment kodu.
Przeczytaj tutaj (określają one złożoność algorytmu i informują, jak algorytmy są wykonywane w czasie wielomianowym):
http://en.wikipedia.org/wiki/NP_(complexity) http://en.wikipedia.org/wiki/NP-complete http://en.wikipedia.org/wiki/NP-hard
Podsumowanie:
http://www.multiwingspan.co.uk/a23.php?page=types
Komentarze