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

배열 요소의 최댓값 구하기

                   배열 요소의 최댓값을 구하는 과정을 살펴보겠습니다. 배열 a의 요소가 3개일 때 세 요소
                   a[0], a[1], a[2] 중 최댓값은 아래 프로그램과 같이 구할 수 있습니다.


                     max = a[0];
                     if(a[1] > max) max = a[1];    요소 개수가 3이면 if문을 2개 작성합니다.
                     if(a[2] > max) max = a[2];



                   변수 이름이 다른 점을 제외하면 실습 1-1에서 살펴본 세 값의 최댓값을 구하는 프로그램과
                   과정이 동일합니다. 물론 요소가 4개면 아래처럼 해야 합니다.


                     max = a[0];
                     if(a[1] > max) max = a[1];    요소 개수가 4이면 if문을 3개 작성합니다.
                     if(a[2] > max) max = a[2];
                     if(a[3] > max) max = a[3];



                   먼저 배열의 요소 개수와 관계없이 첫 번째 요소 a[0]의 값을 max에 대입합니다. 그런 다음

                   if문을 실행하는 과정에서 필요에 따라 max 값을 새로 대입합니다. 요소 개수가 n이면 if문
                   실행은 n – 1번 필요합니다. 이때 max와 비교하고 max에   대입하는 요소의 인덱스는 1씩 증
                   가합니다. 그러므로 a[0], a[1], …, a[n - 1]의 최댓값을 구하는 프로그램은 아래처럼 구현할
                   수 있습니다.


                     max = a[0];
                     for(i = 1; i < n; i++)
                                                 요소 개수가 n이면 if문을 n-1개 작성합니다.
                        if(a[i] > max) max = a[i];




                   이 프로그램의 순서도는 오른쪽과 같습니다.                        a[0] → max
                                                                  i : 1, 1, n-1
                                                                             Yes
                                                                  a[i] > max
                                                                       No            a[i] → max






                                                                 [그림 2-7] 배열 요소의 최댓값을 구하는 알고리즘



                   56   C 알고리즘
   51   52   53   54   55   56   57   58   59   60   61