검색 알고리즘은 컴퓨터 과학 및 프로그래밍에서 중요한 부분으로, 효율적인 데이터 검색을 가능하게 합니다. 이 포스트는 C에서 구현된 선형 검색과 이진 검색, 두 가지 클래식한 검색 알고리즘을 초보자 및 중급 프로그래머에게 소개할 것입니다.
선형 검색
- 개념: 선형 검색의 기본 아이디어 설명.
 - 장단점: 선형 검색을 사용할 때의 장단점 논의.
 - 샘플 코드: C에서 선형 검색 구현.
 
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
 | 
 #include <stdio.h> 
int linearSearch(int arr[], int n, int x) { 
    for (int i = 0; i < n; i++) 
        if (arr[i] == x) 
            return i; 
    return –1; 
} 
int main() { 
    int arr[] = {2, 4, 7, 9, 11, 15}; 
    int x = 7; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int result = linearSearch(arr, n, x); 
    (result == –1) ? printf(“원소를 찾을 수 없음”) 
                   : printf(“원소가 발견된 인덱스: %d”, result); 
    return 0; 
} 
 | 
cs | 
이진 검색
- 개념: 이진 검색 알고리즘에 대한 개요.
 - 장단점: 이진 검색이 가장 효과적인 경우.
 - 샘플 코드: C에서 이진 검색 구현.
 
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
 | 
 #include <stdio.h> 
int binarySearch(int arr[], int l, int r, int x) { 
    while (l <= r) { 
        int m = l + (r – l) / 2; 
        if (arr[m] == x) 
            return m; 
        if (arr[m] < x) 
            l = m + 1; 
        else 
            r = m – 1; 
    } 
    return –1; 
} 
int main() { 
    int arr[] = {2, 3, 4, 10, 40}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int x = 10; 
    int result = binarySearch(arr, 0, n – 1, x); 
    (result == –1) ? printf(“원소를 찾을 수 없음”) 
                   : printf(“원소가 발견된 인덱스: %d”, result); 
    return 0; 
} 
 | 
cs
 
 
 
  | 
참고: https://learn.microsoft.com/en-us/cpp/c-language/?view=msvc-170
