책 내용 질문하기
버블정렬 관련과 저번에 질문드렸던 보수부분 알고리즘..
도서
[2011] 정보처리산업기사 실기
페이지
90
조회수
120
작성일
2011-12-01
작성자
첨부파일

실기는 아니구요. 필기시험 문제였는데요.

이번 2011년 정기 기사 2회 필기시험때 본거엿는데요.

3. 다음 자료를 버블 정렬을 이용하여 오름차순 정렬 하고자 할 경우 1회전 후의 결과는 ?

" 9 , 4 , 5 , 1 , 3 "

답은 " 나: 1,3,4,5,9 "

가 나오던데.;;;

1,3,4,5,9 가 어떻게 나오죠..?

제가 실기책 보면서 버블정렬 해보니까 1회전까지 했을땐 분명 처음엔..

4,5,1,3,9 이렇게 나왔는데;;;

실기책을 아무리봐도 처음에 1회전 할때 요령을 보고 따라해보면 아무리봐도 결과는 이렇게 나와요.

어떻게 1,3,4,5,9 가 나올 수가 있는거죠??

----------------------------------------------------------------------------------------

저번에 질문드렸던 보수부분 알고리즘 에서요.

제일 이해안가던 페이지가 90페이지 였는데요.

제가 막혔던 부분은 " B2(i) = B2(i) MOD(2) " 여기였습니다.

제가 직접했던 알고리즘 디버깅 했던 과정을 보여드리겠습니다. (90페이지)

i c A B1 B2

0 1 ( 0 1 1 0 0) ( 1 0 0 1 1) ( 1 2 2)

1 1 0 0

2 1

3

4

5

4

3

여기까지 했습니다. 책에 보면 마름모모양의 i=0 에서 No로 3번째 분기를 돌았을때,

B2(i) = B1(i)+c 에 따라 저 위에 B2괄호에 3번째 자리에 "1" 을 넣었습니다.

그리고 " B2(i) = B2(i) MOD(2) " 이 명령에 따라 B2의 3번째는 B2의 3번째와 2를 나눈 나머지를 넣으라고

되어 있는데요.

여기에서 질문!!!!

B2의 3번째자리가 1인데 "1에서 2로 어떻게 나눕니까..?" 나누기가 안되는데요..?

MOD가 나머지를 구하는 함수라는 건 아는데.. 1을 2로 어떻게나눠요..;;;

그러면 나머지가 어떻게 나와요;; 나누질 못하는데;;;

이것때문에 세네번을 디버깅을 돌려도 아무리해도 안되더라고요;;

(이 알고리즘 하나때문에 엄청 꼴받앗었다는... 꼭 해결좀 부탁드립니다.)

답변
2011-12-01 09:17:34

안녕하세요.

1)

9, 4, 5, 1, 3을 1회전 한 결과는

답은 가번 4, 5, 1, 3, 9입니다.

다시한번 확인해 보세요.

2)

자신보다 작은 수를 나눌때는 몫은 0이되고 나머지는 피젯수가 그대로 산출됩니다.

즉 1/2는 몫이 0, 나머지는 1이 되는 것이죠.

엑셀에서 나머지를 구하는 MOD 함수를 이용해 =MOD(1,2)를 해보세요.

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

"
  • *
    2011-12-01 09:17:34

    안녕하세요.

    1)

    9, 4, 5, 1, 3을 1회전 한 결과는

    답은 가번 4, 5, 1, 3, 9입니다.

    다시한번 확인해 보세요.

    2)

    자신보다 작은 수를 나눌때는 몫은 0이되고 나머지는 피젯수가 그대로 산출됩니다.

    즉 1/2는 몫이 0, 나머지는 1이 되는 것이죠.

    엑셀에서 나머지를 구하는 MOD 함수를 이용해 =MOD(1,2)를 해보세요.

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

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