Złożoność obliczeniowa i czasowa

0

Witam,
Czy może ktoś wytłumaczyć dlaczego w tej procedurze:

f(int a)
{
	odp=0;
		for(i=1; i<n; i++)
		{
			for(j=1; j< 2*i mod 100;j++)
			{
				for(k=0; k<n*n; k++)
				{
					odp++;
				}
			}
		}
}

Złożoność obliczeniowa wynosi: n^2
Złożoność czasowa: 4^r

A nie odpowiednio:
n^4
I 16^r
Z góry dziękuję za wytłumaczenie zadania!
Pozdrawiam

0

Nie wiem co ty tutaj rozumiesz przez złożoność obliczeniową i czasową. A odpowiedzi które podałeś są w ogóle "z d**y".
Złożoność obliczeniowa tego kodu wynosi:
O(n)*O(1)*O(n2) = O(n3)
Zewnętrzna pętla wykonuje się n-1 razy, środkowa pewną stałą ilość razy ograniczoną z góry przez 100, wewnętrzna wykonuje się n2 razy, w sumie mamy n3

0

złożoność czasowa - teta
złożoność obliczeniowa - duże O
złożoność czasowa Mi wychodziła dlatego że:

złożoność czasowa 1 pętli teta(n)
złożoność czasowa 2 pętli teta(n/50)=teta(n)????
złożoność czasowa 3 pętli teta(n^2)
złożoność czasowa teta(n2)*teta(n)*teta(n)=teta(n4)

Ale wydaje Mi się że popełniam błąd przy wyznaczaniu złożoności 2 pętli nawet jestem tego pewien.

A złożoność obliczeniowa:
n=2^r
n4 = 16r

1

Tą nomenklaturę z O i Theta to chyba sam sobie wymyśliłeś...
A jakim cudem masz w tej drugiej pętli jakieś n? o_O Ja tam widzę tylko:
j< 2*i mod 100 czyli wartości od 0 do 99, chyba że nie wiesz co to jest modulo...

0

Dzięki już wiem przy jakim założeniu błąd zrobiłem ;)
Pozdrawiam

1

Złożoność czasowa i obliczeniowa jest taka sama przy algorytmach jednowątkowych. Przy współbieżnych może się różnić.

Theta(n) i O(n) to dwa różne zbiory, o różnych znaczeniach. Poczytaj na Wiki: http://en.wikipedia.org/wiki/Big_O_notation#Family_of_Bachmann.E2.80.93Landau_notations

1 użytkowników online, w tym zalogowanych: 0, gości: 1