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

실습 3-6                                               •완성 파일 chap03/bsearch2.c
                     01  /* bsearch 함수를 사용하여 내림차순으로 정렬한 배열에서 검색 */
                                                                                실행 결과
                     02  #include <stdio.h>
                                                                          bsearch 함수를 사용하여 검색
                     03  #include <stdlib.h>                              요소 개수 : 8
                     04                                                   내림차순으로 입력하세요.
                     05  /*--- 정수를 비교하는 함수(내림차순) ---*/                    x[0] : 79
                     06  int int_cmpr(const int *a, const int *b)         x[1] : 68
                                                                          x[2] : 57
                     07  {
                                                                          x[3] : 39
                     08     if(*a < *b)
                                                                          x[4] : 23
                     09       return 1;                                   x[5] : 22
                     10     else if(*a > *b)                              x[6] : 15
                     11       return -1;                                  x[7] : 13
                     12     else                                          검색값 : 22
                                                                          22는(은) x[5]에 있습니다.
                     13       return 0;
                     14  }
                     15
                     16  int main(void)
                     17  {
                     18     int i, nx, ky;
                     19     int *x;                           /* 배열의 첫 번째 요소에 대한 포인터 */
                     20     int *p;                          /* 검색한 요소에 대한 포인터 */
                     21     puts("bsearch 함수를 사용하여 검색");
                     22     printf("요소 개수 : ");
                     23     scanf("%d", &nx);
                     24     x = calloc(nx, sizeof(int));    /* 요소의 개수가 nx인 int형 배열을 생성 */
                     25     printf("내림차순으로 입력하세요.\n", nx);
                     26     printf("x[0] : ");
                     27     scanf("%d", &x[0]);
                     28     for(i = 1; i < nx; i++) {
                     29       do {
                     30         printf("x[%d] : ", i);
                     31         scanf("%d", &x[i]);
                     32       } while(x[i] > x[i - 1]);     /* 바로 앞의 값보다 크면 다시 입력 */
                     33     }
                     34     printf("검색값 : ");
                     35     scanf("%d", &ky);
                     36     p = bsearch(&ky,                              /* 검색값에 대한 포인터 */
                     37                  x,                               /* 배열 */
                     38                  nx,                              /* 요소의 개수 */
                     39                  sizeof(int),                      /* 요소의 크기 */





                   122   C 알고리즘
   117   118   119   120   121   122   123   124   125   126   127