현재 TCRC Introduction to Algorithms 제 3 판 교과서 2 장을 읽고 있는데이 알고리즘의 루프 불변성에 대한 저자의 해석을 읽었습니다. 초기화와 유지 보수에 대한 저자의 논리를 이해합니다. 그러나, 종결은 내가 꽁꽁 얼어 붙은 것입니다. 저자는 종료시에 j = n + 1이라고 주장합니다. 그러나 알고리즘의 의사 코드에서 j는 2에서 n으로 반복됩니다. 그러니 j = n - 1일까요?삽입 정렬 알고리즘의 종결 루프에서 j = n + 1이 왜 불규칙합니까?
편집 : 일종의 삽입이 책의 의사 코드 :
for j = 2 to A.length
key = A[j]
// Insert A[j] into sorted sequence A[1...j - 1]
i = j - 1
while i > 0 and A[i] > key
A[i + 1] = A[i]
i = i - 1
A[i + 1] = key
편집 :주의 깊게 읽은 후, 나는 마침내 종료하는 동안 왜 J = N + 1을 이해했다. for 루프가 2에서 n (포괄적으로)이기 때문에 j가 n을 초과하면 루프가 종료되므로 종료시 j = n + 1이됩니다. 도움에 감사드립니다.
당신이 의사를 제공 할 수
그리고이 C의 예에서
,c
는 종료 후A.length
의 값을 가지고? – BlackBear문제의 텍스트를 제공해야합니다. 게시 한 내용을 알 수있는 방법이 없습니다. – Prune
StackOverflow에 오신 것을 환영합니다.도움말 설명서의 게시 지침을 읽고 따르십시오. [주제] (http://stackoverflow.com/help/on-topic) 및 [묻는 방법] (http://stackoverflow.com/help/how-to-ask) 여기를 참조하십시오. – Prune