i | key | k | a(k) | a(k+1) |
2 | 50 | 1 | 80 | 80 |
0 | 50 |
디버깅 한 것인대요. a(k+1)=key 인대
출력을 보면 80 50 이 50 80 으로 변하는대..
왜 key값 50을 넣는거죠?? 제 생각엔 80 50 을 key50을 가지고 비교한후
80을 2번째 배열에 넣고 까진 맞다고 생각하는대, key값을 다시 a(k+1)에 넣기때문에
다시 50 50 으로 출력이 된다고 생각 되는대..
풀이 부탁드립니다.
안녕하세요.
138쪽부터 수록된 삽입정렬의 알고리즘 이해를 다시한번 정리해 보세요.
삽입정렬은 정렬 기준 자료를 Key에 저장한 후 자신보다 앞쪽의 값과 Key 값을 비교합니다.
오름차순이라면 자신보다 큰 값이 있다면 뒤로 밀면서 자신의 위치를 찾습니다.
50을 Key 값에 두고 80과 비교한 후 80은 두번째 자리로 밀리고
첫번재 자리에 50을 저장합니다.
이때 반복문을 수행한 후 k는 0이 됩니다.(140쪽 사이드 전조 반복문의 반복변수의 변화 참조)
그러므로 A(K+1) = Key, 즉 A(1) = Key가 되어 첫번째에 Key값인 50이 저장됩니다.
오늘도 즐거운 하루 되세요.
"-
*2012-04-10 09:25:11
안녕하세요.
138쪽부터 수록된 삽입정렬의 알고리즘 이해를 다시한번 정리해 보세요.
삽입정렬은 정렬 기준 자료를 Key에 저장한 후 자신보다 앞쪽의 값과 Key 값을 비교합니다.
오름차순이라면 자신보다 큰 값이 있다면 뒤로 밀면서 자신의 위치를 찾습니다.
50을 Key 값에 두고 80과 비교한 후 80은 두번째 자리로 밀리고
첫번재 자리에 50을 저장합니다.
이때 반복문을 수행한 후 k는 0이 됩니다.(140쪽 사이드 전조 반복문의 반복변수의 변화 참조)
그러므로 A(K+1) = Key, 즉 A(1) = Key가 되어 첫번째에 Key값인 50이 저장됩니다.
오늘도 즐거운 하루 되세요.
"