2015-01-17 4 views
0

그래서 내가 정말 여기에 몇 가지를 이해하지 못하는거야, 대답은 : 할당 int i = 1에 대한시간 복잡성

1, N i <= n에 대한 + 1 및 N i++에 대한 어떤 총 2n + 2로 나옵니다. 내 혼동은 3 부분으로 구성되어 있습니다.

1.) 할당이 int i = 1;도 n이 아닌가요? if n = 5라고하면 int i = 2, int i = 3 ... 등의 할당을 끝내지 않겠습니까?

2.) i <= n의 경우 n 검사를 수행 중이므로 n + 1이고 false 일 때는 +1합니다.

3) 마지막으로 n 추가를 수행 중이므로 i++입니까?

+0

초보자 용 자습서를 읽고 해석 할 수있는 능력이 필요합니다. 정말로 ** 변수에 1을 대입하면 2와 3이 할당 될 것이라고 생각합니까? –

답변

1

초기화 int i=1;은 n에 관계없이 루프의 시작 부분에서 단 한 번만 수행됩니다.

2) 및 3)과 마찬가지로 귀하가 정확합니다.

+0

좋아요, 초기화, 어떤 이유로 인해 단어 할당이 나를 혼란스럽게합니다. 나는 증분을 생각하고 그 중 어느 것이 상호 배타적이지 않은지에 대한 가치를 할당했다. 나는 그걸 너무 많이 조사하고 있었다. 감사! :) –

2

루프의 모양은 for(INIT; CONDITION; INCREMENT) { /* ... */ }입니다. INIT 부분은 한 번만 실행됩니다. 이것은 다음과 동일합니다 :

+0

네, 지금 이걸 봅니다, 고마워요! –

+0

좋은 지적. 그것이 분명하게 보이게하는 가장 좋은 방법입니다. –