shellsort에서 질문입니다(이해가 안가는게 있어서..)
글쓴이: buildkdom / 작성시간: 월, 2004/08/02 - 2:34오후
(제 3장 제어흐름 - The C Programming Language)
원서로는 페이지가 어디인지는 잘 모르겠으나..
암튼 번역본으로는 85페이지 입니다.
여기서 shell sort가 나오는데요
한 부분이 이해가 안가서 글 올려봅니다..
void shellsort(int v[], int n) { int gap, i, j, temp; for(gap = n/2 ; gap>0 ; gap /= 2) for(i=gap ; i<n ; i++) for(i=j-gap ; j>=0 && v[j] > v[j+gap] ; j-=gap){ temp = v[j]; v[j] = v[j+gap]; v[j+gap] = v[j]; } }
가장 안쪽에 있는 (3번째) for문에서 j-=gap 이라는 부분을 왜 이런식으로
구현하게 되었는지 모르겠습니다. 다른 부분들은 왜 이렇게 정렬을 시도했는지
이해가 가는데... 이 부분이 이해가 쉽게 안됩니다..
그냥 단지 배열 v[]에서, 인덱스로 들어가는 값을 한정한 후, 계산되는 값을
고려한 부분 보다 좀 더 깊은 의미... 뭔가... 더 깊은 내용이 있을 듯 해서요;;
(없으면 ... ;;))
Forums:
댓글 달기