책 내용 질문하기
기출문제집 p43 문제7
도서
2022 시나공 정보처리산업기사 실기
페이지
43
조회수
243
작성일
2022-09-09
작성자
탈퇴*원
첨부파일
temp =a[j] a[j]=a[sw] a[sw]=temp 문제가 이렇게 되어야하는거아닌가요?? i=sw 같다고 위에 정의를 했는데... 문제대로라면..temp 의미가 없지않나요?
답변
2022-09-13 09:24:11

안녕하세요 길벗수험서 운영팀입니다.

 

해당 알고리즘은 i가 고정위치, j가 가변위치로 이동해가며 더 작은 값을 맨 앞으로 이동시킵니다.

 

안쪽 for문에서 고정위치의 값보다 더 작은 값이 없는지 비교를 수행하게 되고, 

만약 더 작은 값이 없다면, sw는 그대로 i의 값을 갖고 있게 되면서 해당 세 줄에서 자기 교체가 이루어지죠.(의미 없는 교환)

반면 더 작은 값을 찾게 되면 sw가 j를 갖게 되면서 i과 j 위치의 값이 서로 교환이 이루어지게 됩니다. 

 

이 알고리즘에서 교체 시 i가 아닌 j 위치의 값은 사용하지 못합니다.

안쪽 for문 종료 시 j는 n의 값을 갖게 되는데, 이 때 a[j]를 조회하게 되면 배열의 범위를 벗어난 위치를 조회하게 되어 오류가 발생합니다.

해당 교체 수행 시 a[j]는 항상 a[n]의 값을 갖게 되어 알고리즘 자체도 정상적으로 수행되지 않게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2022-09-13 09:24:11

    안녕하세요 길벗수험서 운영팀입니다.

     

    해당 알고리즘은 i가 고정위치, j가 가변위치로 이동해가며 더 작은 값을 맨 앞으로 이동시킵니다.

     

    안쪽 for문에서 고정위치의 값보다 더 작은 값이 없는지 비교를 수행하게 되고, 

    만약 더 작은 값이 없다면, sw는 그대로 i의 값을 갖고 있게 되면서 해당 세 줄에서 자기 교체가 이루어지죠.(의미 없는 교환)

    반면 더 작은 값을 찾게 되면 sw가 j를 갖게 되면서 i과 j 위치의 값이 서로 교환이 이루어지게 됩니다. 

     

    이 알고리즘에서 교체 시 i가 아닌 j 위치의 값은 사용하지 못합니다.

    안쪽 for문 종료 시 j는 n의 값을 갖게 되는데, 이 때 a[j]를 조회하게 되면 배열의 범위를 벗어난 위치를 조회하게 되어 오류가 발생합니다.

    해당 교체 수행 시 a[j]는 항상 a[n]의 값을 갖게 되어 알고리즘 자체도 정상적으로 수행되지 않게 되죠.

     

    행복한 하루되세요 :)

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