이 문장의 복잡성은 얼마나됩니까?복잡성 (초급 질문)
for(int k = 1; k < n; k++)
for(int i = 0; i < n-k; i++){
//O(1) operation here
}
설명 감사합니다.
이 문장의 복잡성은 얼마나됩니까?복잡성 (초급 질문)
for(int k = 1; k < n; k++)
for(int i = 0; i < n-k; i++){
//O(1) operation here
}
설명 감사합니다.
먼저 외부 루프를 수행하면 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
.
복잡성면에서 약 n²
입니다.
영업 사원은 이것이 [삼각 번호] (http://en.wikipedia.org/wiki/Triangular_number)라고하는 것을 알고 싶어 할 것입니다. 가우스가 어렸을 때 이야기에 관한 이야기가 있습니다. 그의 선생님은 수업을 듣고 1에서 100 사이의 숫자를 모두 합해서 바쁘게했습니다. 가우스 (Gauss)는이 패턴을 발견하고 교사를 놀라게하면서 신속하게 답을 계산할 수있었습니다. ** 편집 : ** 나는 방금이 질문이 5 개월 된 것을 깨달았습니다. 어떻게 여기에 왔는지 전혀 몰랐습니다. –
무엇이라고 생각하십니까? 어떻게 결론에 도달 했습니까? 우리는 질문자가 수행 한 _ 일부 작업을보고 싶습니다. – Oded
O (nlog (n)). 이것이 내가 생각하는 것인데, 큰 의문을 가지고 있으므로 부탁드립니다. –