나는 다음과 같은 기능의 복잡성을 계산하기 위해 노력했습니다 : 특히계산 복잡도?
k=n;
while(k>0)
g(n);
k=k/2; {Comment: this is integer division, so 1/2=0}
end while;
for(j=0;j<m;j++)
f(m);
를, 그동안의 loop.I의 복잡성은 g (N)의 복잡도는 O (N), 그러나 것을 듣는다 나는 그 복잡성이 무엇인지, 그리고 어떻게 해결할 수있을 지 확신하지 못한다. 나는 복잡성이 O (0.5n^2)가 아닐 것이라는 것을 깨닫게되었지만, 매번 반으로 자르기 때문에 그것을 계산하는 방법을 확신 할 수 없다. 누구든지 아이디어가 있습니까? g (n은)
더 설명하기 위해 (n)이 O, 당신의 복잡도는 O (N N * 로그()) 인 경우
, 얼마나 많은 반복이 0의 문제의 크기에 도달하려면 어떻게해야합니까? 나는. 'n'이라는 숫자가 주어지면 (정수) 계산기에서/2를 눌러서 0에 도달해야하는 횟수는 몇 번입니까? –
@Karel 나는 n/2를 제공하는 8과 같은 숫자를 시도했지만, 20과 같은 숫자는 n/4를 제공하므로 확신 할 수 없습니다. – user1899174
이 숫자는 실제로 로그 (2로 나눌 때 기본 2)라고합니다. 나는. 외부 루프는 log (n) 번 반복되고, 나머지는 쉬워야합니다. http://cs.stackexchange.com/questions/581/intuition-for-logarithmic-complexity –