C 언어 가까운 값 알고리즘
본 아티클의 내용은 다음 링크를 통해서 지속적으로 업데이트됩니다.
## C 언어 가까운 값 알고리즘
가까운 값(NEAR) 알고리즘은 원본 데이터에서 대상 데이터와 가장 가까운 값을 찾는 알고리즘입니다. 이 알고리즘은 주로 데이터 검색에 사용됩니다.
C 언어로 구현된 가까운 값 알고리즘 예제 코드를 살펴보겠습니다.
// near_algorithm.c
// 가까운값(NEAR) 알고리즘 :
// 주어진(원본) 데이터에서 대상(타겟) 데이터와 가장 가까운 값
// - (원본과 타겟의)차이값의 절대값의 최소값일 때의 원본 데이터
#include <stdio.h>
#include <limits.h>
#include <math.h>
void main(void) {
//[1] Input
int i = 0; int data[] = { 21, 15, 30, 45, 27 };
int target = 31; // 31과 가장 가까운값은?
int near = 0; // 가장 가까운값이 담길 그릇
int diff = 0; // 차이값
int min = INT_MAX; // 차이값의 최소값을 저장
//[2] Process
for (i = 0; i < 5; i++) {
diff = data[i] - target; // 차이값
diff = abs(diff); // 차이값의 절대값
if (min > diff) { // 최소값
min = diff; // 최소값 알고리즘
near = data[i]; // 차이값의 절대값의 최소값일때의 데이터
}
}
//[3] Output
printf("%d와 가장 가까운값 : %d\n", target, near);
}
```output
31와 가장 가까운값 : 30
```
먼저 입력 데이터는 배열 `data`와 대상 데이터 `target`로 구성됩니다. 여기서는 data 배열에 5개의 정수 값을 입력하였습니다. 이후에는 가장 가까운 값이 저장될 변수 `near`, 차이값이 저장될 변수 `diff`, 차이값의 최소값이 저장될 변수 `min`이 선언됩니다.
다음으로 `for` 반복문을 이용하여 각 원소의 차이값을 계산하고, 차이값이 가장 작은 값을 찾아 `near` 변수에 저장합니다. `abs()` 함수를 이용하여 차이값의 절대값을 계산하였습니다.
마지막으로 결과값인 대상 데이터 `target`과 가장 가까운 값인 `near`을 출력합니다.
이제 예제 코드를 실행해보겠습니다. 결과값으로는 31과 가장 가까운 30이 출력됩니다.
가까운 값 알고리즘은 간단하면서도 매우 유용한 알고리즘입니다.
Comments
Comments are closed