Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm sự khác biệt nhỏ nhất giữa hai phần tử bất kỳ trong C ++


Giả sử chúng ta có một mảng gồm n phần tử được gọi là A. Chúng ta phải tìm hiệu nhỏ nhất giữa hai phần tử bất kỳ trong mảng đó. Giả sử A =[30, 5, 20, 9], thì kết quả sẽ là 4. Đây là khoảng cách nhỏ nhất của phần tử 5 và 9.

Để giải quyết vấn đề này, chúng ta phải làm theo các bước sau -

  • Sắp xếp mảng theo thứ tự không giảm dần

  • Khởi tạo sự khác biệt là vô hạn

  • So sánh tất cả các cặp liền kề trong mảng đã sắp xếp và theo dõi một cặp nhỏ nhất

Ví dụ

#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);
}

Đầu ra

Minimum difference between two elements is: 4