Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 두 요소 간의 최소 차이 찾기


A라고 하는 n개의 요소 배열이 있다고 가정합니다. 해당 배열의 두 요소 사이의 최소 차이를 찾아야 합니다. A =[30, 5, 20, 9]라고 가정하면 결과는 4가 됩니다. 이것은 요소 5와 9의 최소 거리입니다.

이 문제를 해결하려면 다음 단계를 따라야 합니다.

  • 내림차순으로 배열 정렬

  • 차이를 무한으로 초기화

  • 정렬된 배열의 모든 인접 쌍을 비교하고 최소 쌍을 추적합니다.

예시

#include<iostream>
#include<algorithm>
using namespace std;
int getMinimumDifference(int a[], int n) {
   sort(a, a+n);
   int min_diff = INT_MAX;
   for (int i=0; i<n-1; i++)
      if (a[i+1] - a[i] < min_diff)
         min_diff = a[i+1] - a[i];
   return min_diff;
}
int main() {
   int arr[] = {30, 5, 20, 9};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "Minimum difference between two elements is: " << getMinimumDifference(arr, n);
}

출력

Minimum difference between two elements is: 4