안녕하세요? 김도현 회원님
정보처리 자격시험 온라인 강의, 최강! 기사친구 입니다.
회원님 질문에 답변 드리겠습니다.
회원님이 아직 삽입정렬 순서도가 익숙하지 않으셔서 헷갈리시는 것 같습니다.
삽입정렬의 기본 아이디어는 교재 124쪽 그림으로 상세히 잘 설명해 주고 있으니
참고 하시기 바랍니다.
결론부터 말하면 워크시트의 순서도는 삽입정렬 기본 아이디어를 그대로 재현해 놓은 것입니다.
순서도의 동작은 다음과 같습니다.
(1) 처음으로 첫번째 점수 A(1)을 입력받습니다. (2) CNT = 1 (3) CNT = CNT + 1 (4) 새로운 값 IMSI를 입력받습니다.
(5) 여기서 입력받은 IMSI 가 들어 갈 위치를 결정짓기 위해 IMSI 와 현재 배열에 저장되어 있는 값중 맨 끝값부터 처음값까지 차례로 비교하게 됩니다. (6) 비교 도중 IMSI 값보다 큰값을 만나면 배열의 값은 한칸씩 뒤로 미뤄지게 되고, IMSI 값보다 작은 값을 만나면 비교를 멈추게 되고, 비교 대상 값 바로 뒤 배열 위치에 IMSI를 할당합니다. 따라서 순서도에서 IMSI 와 A(J)을 비교하는 것은 한번으로 끝나는 것이 아니고, A(J)가 IMSI 보다 작을때까지 비교하게 됩니다.
그리고 점수 입력이 끝날때 까지 (3) 으로 돌아가 위와 같은 수행을 반복하고,
반복을 종료하면 정렬된 수열을 결과로 얻을 수 있습니다.
회원님 이해되셨나요?^^
열공하시구요.
앞으로도 지금처럼 열심히 학습에 임하셔서 꼭 합격할 수 있기를 기원하겠습니다.^^
34937번 게시글 문제로 질문 드렸었는데 이해를 못하는 부분이 다시 생겨서 질문 드립니다. (아래는 원문 링크 입니다.) http://www.gisa79.com/Board/My_Board/My_View.asp?Board_Kind=Qna_QnaGs_S&offset=0&idx=97200
질문은....
|MS|가 임의의 수를 입력 받는다고 하셨는데 |MS|의 경우 A(J)와 A(J+1)이 한번 정렬이 되고 다음 회전을 할때 마다 임의의 값을 계속 입력 받게 되어있는데 이 경우에 임의 값이 계속 배열에 입력된 성적보다 적은 값이거나 큰값인 즉 배열에 상관없는 임의의 값이 들어오게 되면 정렬이 되지 않는것 같은데 이해가 잘 안되네요.... 머리가 나쁜건지...ㅜㅜ |