24색션 삽입정렬
P 140
10개 수치자료를 입력받아 삽입정렬하는 문제에서
⑩ 단계에서 ⑪ 단계로 넘어 가면 오류가 생깁니다.
예를 들어
A(6) = [2 3 4 1 6 5] 라는 자료를 받았다고 치면
i = 2, k = 1
1회전 [2 3 4 1 6 5] 판단에서 No로 나옴
i = 3, k = 2,1
2회전 [2 3 4 1 6 5] 판단에서 No로 나옴
i =4, k = 3,2,1 일때
3회전 [1 2 3 4 6 5] 가 되야합니다.
하지만
2회전 [2 3 4 1 6 5]에서
Key = 1
i = 4, k =3,2,1 로 두고
⑧반복을 계산하고 ⑪ 앞까지의 배열이
[2 2 3 4 6 5], k = 1 이 됩니다.
이상태에서 ⑪ A(K+1) = KEY 를 계산하면 A(2) = 1 이되어
[2 1 3 4 6 5] 값이 되버리는군요.
3회전 값이 [2 1 3 4 6 5]이 되버립니다.
제가 잘못 생각한건 가요?
문제 두개가 시간을 너무 잡아 먹네요..
대충 넘어가기엔 찜찜하구요... 설명 부탁드립니다.
안녕하세요.
A(6) = [2 3 4 1 6 5] 라는 자료를 받았다고 치면
i = 2, k = 1
1회전 [2 3 4 1 6 5] 판단에서 No로 나옴
i = 3, k = 2,1
2회전 [2 3 4 1 6 5] 판단에서 No로 나옴
i =4, k = 3,2,1 일때
3회전
Key = 1
i = 4, k =3,2,1 로 두고
K가 3일 때 교환 2 3 4 4 6 5
K가 2일 때 교환 2 3 3 4 6 5
K가 1일 때 교환 2 2 3 4 6 5
K가 0이 되어 반복문빠져 나오면 A(K+1) = KEY에 의해 A(1) = KEY가 되므로
1 2 3 4 6 5가 됩니다.
왼쪽의 사이드 전문가의 조언에서도 언급했듯이 반복문을 빠져나올 때 반복변수의 값은 증가치(문제에서는 -1)가 한번 더 적용된 상태로 빠져나옵니다. 이점 염두에 두고 다시한번 학습하세요.
오늘도 즐거운 하루 되세요.
"-
*2011-04-29 10:34:47
안녕하세요.
A(6) = [2 3 4 1 6 5] 라는 자료를 받았다고 치면
i = 2, k = 1
1회전 [2 3 4 1 6 5] 판단에서 No로 나옴
i = 3, k = 2,1
2회전 [2 3 4 1 6 5] 판단에서 No로 나옴
i =4, k = 3,2,1 일때
3회전
Key = 1
i = 4, k =3,2,1 로 두고
K가 3일 때 교환 2 3 4 4 6 5
K가 2일 때 교환 2 3 3 4 6 5
K가 1일 때 교환 2 2 3 4 6 5
K가 0이 되어 반복문빠져 나오면 A(K+1) = KEY에 의해 A(1) = KEY가 되므로
1 2 3 4 6 5가 됩니다.
왼쪽의 사이드 전문가의 조언에서도 언급했듯이 반복문을 빠져나올 때 반복변수의 값은 증가치(문제에서는 -1)가 한번 더 적용된 상태로 빠져나옵니다. 이점 염두에 두고 다시한번 학습하세요.
오늘도 즐거운 하루 되세요.
"