3

이 문장의 복잡성은 얼마나됩니까?복잡성 (초급 질문)

for(int k = 1; k < n; k++) 
    for(int i = 0; i < n-k; i++){ 
     //O(1) operation here 
    } 

설명 감사합니다.

+2

무엇이라고 생각하십니까? 어떻게 결론에 도달 했습니까? 우리는 질문자가 수행 한 _ 일부 작업을보고 싶습니다. – Oded

+0

O (nlog (n)). 이것이 내가 생각하는 것인데, 큰 의문을 가지고 있으므로 부탁드립니다. –

답변

4

먼저 외부 루프를 수행하면 n-1 번 작업이 수행됩니다. 두 번째로 진행하십시오. n-2 번 ... 모든 것을 추가하면 (n)*(n-1)/2 작업으로 끝납니다.

합계를 보려면 1에서 (n-1), 다음으로 (n-1)에서 1로 작성하고 각 용어를 하나씩 추가하십시오.

1 2 3 ... n-3 n-2 n-1 
n-1 n-2 n-3 ... 3 2 1 
--------------------------- 
    n n n  n n n 

so 2 * sum = (n-1) * n.

복잡성면에서 약 입니다.

+0

영업 사원은 이것이 [삼각 번호] (http://en.wikipedia.org/wiki/Triangular_number)라고하는 것을 알고 싶어 할 것입니다. 가우스가 어렸을 때 이야기에 관한 이야기가 있습니다. 그의 선생님은 수업을 듣고 1에서 100 사이의 숫자를 모두 합해서 바쁘게했습니다. 가우스 (Gauss)는이 패턴을 발견하고 교사를 놀라게하면서 신속하게 답을 계산할 수있었습니다. ** 편집 : ** 나는 방금이 질문이 5 개월 된 것을 깨달았습니다. 어떻게 여기에 왔는지 전혀 몰랐습니다. –