查找C ++中任何两个元素之间的最小差异

假设我们有一个由n个元素组成的数组,称为A。我们必须找到该数组中任何两个元素之间的最小差。假设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

以上是 查找C ++中任何两个元素之间的最小差异 的全部内容, 来源链接: utcz.com/z/345320.html

回到顶部