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

방금 작성한 알고리즘에 따라 배열 a의 요소에서 최댓값을 구하는 과정은 다음과 같습니다.


                                   max = a[0];         1
                                   for(i = 1; i < n; i++)  2
                                     if(a[i] > max) max = a[i];


                                                                      max
                                           1    2     3     4
                                1    22   57    11   91    32         22



                                        max보다 큰 요소를 만났습니다.
                                      0        2     3     4
                                2    22   57    11   91    32         57



                                      0    1         3     4
                                     22   57    11   91    32         57

                                                    max보다 큰 요소를 만났습니다.
                                      0    1    2          4
                                     22   57    11   91    32         91


                                      0    1    2     3     
                                     22   57    11   91    32         91

                                 [그림 2-8] 배열 요소의 최댓값을 구하는 과정의 한 예


                        그림에서 ● 안의 값은 우리가 살펴볼 요소의 인덱스입니다. 살펴볼 요소는 첫 번째부터 시
                        작하여 하나씩 뒤쪽으로 이동합니다.  1  에서는 a[0]을 살펴보고 a[0]의 값을 max에 대입합
                        니다. 그리고  2  의 for문에서는 a[1]부터 마지막 요소 a[n – 1]까지 차례로 살펴봅니다. 이처
                        럼 배열의 요소를 하나씩 차례로 살펴보는 과정을 알고리즘 용어로 주사(走査, traverse)라고

                        합니다.



                              조금만 더!  주사의 정확한 뜻이 궁금해요!

                           주사(走査)는 원래 텔레비전 화면이나 사진을 전송할 때 화면을 여러 개의 점으로 나눠 그 점을 전기 신호로
                           바꾸는 일 또는 이 전기 신호에서 점을 조립하여 화면을 재구성하는 일을 말합니다. 즉, 스캐닝(scanning)
                           을 의미합니다. 이 책에서 주사는 데이터를 하나씩 지나면서(走, 달릴 주) 살피고, 조사하는(査, 조사할 사) 일
                           을 말합니다. 영어로는 traverse라고 하는데, 이는 가로지르다, 횡단하다는 뜻입니다.




                        주사 과정에서 if문의 제어식 a[i] > max가 참일 때(살펴보고 있는 요소 a[i]의 값이 최댓값 max보다




                                                                                      02• 기본 자료구조  57
   52   53   54   55   56   57   58   59   60   61   62