책 내용 질문하기
질문요.
도서
[2010] 정보처리산업기사 실기
페이지
140
조회수
80
작성일
2012-04-09
작성자
첨부파일

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 으로 출력이 된다고 생각 되는대..

풀이 부탁드립니다.

답변
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이 저장됩니다.

오늘도 즐거운 하루 되세요.

"
  • *
    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이 저장됩니다.

    오늘도 즐거운 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.