Wpis z mikrobloga

@davidero69: Generalnie pytania dotyczące kodu są łatwiejsze do odpowiedzenia gdy ktoś ten kod wklei. A jak jeszcze jakimś zadaniem dysponujesz, to już w ogóle.
  • Odpowiedz
@asunez: no tylko, że ja chcę zrozumieć czym są takie złożoności, do czego służą, jak się je charakteryzuje/rozpoznaje i z czego wynika taki podział. O to pytam.

Mam zrobić program, który do liczby podanej przez użytkownika dodaje 2, a potem zwraca ten wynik. To jakie tam niby będą złożoności i dlaczego takie?
  • Odpowiedz
@davidero69: W tym konkretnym przypadku O(1) ( ͡° ͜ʖ ͡°)

Generalnie zlozonosc czasowa polega na liczeniu ile instrukcji „liczących” wykonuje program. Nie interesuje Cię interakcja z użytkownikiem itd.

Czyli przykładowo
  • Odpowiedz
@davidero69: no kwadratowa, czyli liczba przebiegów rośnie kwadratowa, dla N = 1 masz 1, dla N = 2 masz 4, dla N = 10 masz 100, dla N = 1000 masz 1000000

Najprostszy O(n^2):

for(int i = 0; i < len(arr);
  • Odpowiedz
@davidero69: najpierw ogarnij teorie, a potem bierz sie za praktyke. W internecie jest pierdyliard informacji o "complexity of algorithm" czy zlozonosci obliczeniowej czy jakkolwiek to bylo po polsku
  • Odpowiedz