Page 208 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 208

Q5  연습문제 Q2(204쪽)와 마찬가지로 비교, 교환 과정을 자세히 출력하는 프로그램(실습
                    연습
                    문제      6-3)으로 수정하세요.


                             Q6  다음의 배열을 정렬한다고 가정하겠습니다.

                                              9   1    3   4    5   6    7   8

                            이 배열은 두 번째 요소부터는 정렬은 되어 있지만 버전 3의 버블 정렬 알고리즘을 사용해도 빠른
                            시간 안에 정렬 작업을 마칠 수는 없습니다. 왜냐하면 맨 앞에 있는 요소의 값(9)은 1회의 패스를
                            거쳐도 한 칸만 뒤로 옮겨지기 때문입니다. 그래서 홀수 번째의 패스는 가장 작은 요소를 맨 앞으
                            로 옮기고 짝수 번째 패스는 가장 큰 요소를 맨 뒤로 옮기는 방식을 사용하면(패스의 스캔 방향을
                            교대로 바꾸면) 이런 정렬을 더 적은 횟수로 비교를 수행할 수 있습니다. 버전 3의 프로그램을 개
                            선하여 양방향 버블 정렬을 수행하는 프로그램을 작성하세요.

                               버블 정렬을 개선한 이 알고리즘은 양방향 버블 정렬(bidirection bubble sort) 또는 칵테일 정렬(cocktail
                            sort), 셰이커 정렬(shaker sort)이라는 이름으로 알려져 있습니다.


















































                   208   C 알고리즘
   203   204   205   206   207   208   209   210   211   212   213