가까운 값 알고리즘
추천 자료: ASP.NET Core 인증 및 권한 부여
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);
}
31와 가장 가까운값 : 30
먼저 입력 데이터는 배열 data
와 대상 데이터 target
로 구성됩니다. 여기서는 data 배열에 5개의 정수 값을 입력하였습니다. 이후에는 가장 가까운 값이 저장될 변수 near
, 차이값이 저장될 변수 diff
, 차이값의 최소값이 저장될 변수 min
이 선언됩니다.
다음으로 for
반복문을 이용하여 각 원소의 차이값을 계산하고, 차이값이 가장 작은 값을 찾아 near
변수에 저장합니다. abs()
함수를 이용하여 차이값의 절대값을 계산하였습니다.
마지막으로 결과값인 대상 데이터 target
과 가장 가까운 값인 near
을 출력합니다.
이제 예제 코드를 실행해보겠습니다. 결과값으로는 31과 가장 가까운 30이 출력됩니다.
가까운 값 알고리즘은 간단하면서도 매우 유용한 알고리즘입니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!