책 내용 질문하기
282p쪽 버블정렬-좌우로 번갈아 가면서 정렬 질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
282
조회수
242
작성일
2018-12-24
작성자
탈퇴*원
282p이랑 283p에서 질문인데 Left : 1 right :4 Left : 2 right:4 이것들은 약속이라서 그대로 외우면 되는건가요?
답변
2018-12-26 09:10:42

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

 

Left의 시작 값은 1로 고정되지만 

Right의 시작 값은 자료의 개수에 따라 달라집니다.

여기서는 자료의 개수가 5이므로 4를 갖고 시작하는 것입니다.

이를 염두에 두고 알고리즘 이해 과정을 다시 한 번 읽어보면서 진행 과정을 살펴보세요.

 

행복한 하루 되세요 :)

  • 관리자
    2018-12-26 09:10:42

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

     

    Left의 시작 값은 1로 고정되지만 

    Right의 시작 값은 자료의 개수에 따라 달라집니다.

    여기서는 자료의 개수가 5이므로 4를 갖고 시작하는 것입니다.

    이를 염두에 두고 알고리즘 이해 과정을 다시 한 번 읽어보면서 진행 과정을 살펴보세요.

     

    행복한 하루 되세요 :)

  • 관리자
    2019-01-23 10:17:59

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

     

    순서도를 기준으로 다시 설명 드리겠습니다.

     

    배열 d[5]에 5개의 값이 저장되었다고 가정하겠습니다.

     

    left는 배열의 시작 위치 1이 저장됩니다. (C에서는 0)

    right는 배열의 끝 위치 5가 저장됩니다. (C에서는 4)

     

    유형1과 비교했을 때, 유형1은

    1회전 ->

    2회전 ->

    3회전 ->

    4회전 ->

    이런식으로 진행하였다면,

     

    유형2는

    1회전 ->

    2회전 <-

    3회전 ->

    4회전 <-

    이런식으로 진행됩니다.

     

    1회전 때는 left(1)부터 right-1(4)까지 반복(첫번째 반복문)하면서 비교를 D[i]>D[i+1](순서도 빈칸1번)로 하니까 1회전때 비교는

    d[1]>d[2], d[2]>d[3], d[3]>d[4], d[4]>d[5] 이렇게 되죠.

     

    (순서도 빈칸2번에서 right=shift를 수행하면 right는 4가 됩니다.)

    2회전 때는 right(4)부터 left+1(2)까지 반복(두번째 반복문)하면서 비교를 D[i-1] > D[i](순서도 빈칸3번)로 하니까 2회전때 비교는

    d[3]>d[4], d[2]>d[3], d[1]>d[2] 이렇게 됩니다.

     

    이러한 순서대로 진행되게 됩니다.

     

    유형1번과 비교했을 때 반복문을 추가하여 역순 검색을 한번 더 했을 뿐 달라질 것은 없으니, 디버깅해보면서 각 변수가 어떤식으로 활용되었는지 확인해보세요.

     

    행복한 하루 되세요 :)

  • *
    2019-01-21 18:53:07

    Left,right 의미를 잘 모르겠습니다.

    Left=1, right=4이면 

    Left=1에서 right=4까지 버블정렬하라는건가요?

    의미 설명 부탁드립니다.

     

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