검색 알고리즘은 컴퓨터 과학 및 프로그래밍에서 중요한 부분으로, 효율적인 데이터 검색을 가능하게 합니다. 이 포스트는 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