# Find minimum difference between any two elements

Given an unsorted array, find the minimum difference between any pair in given array.

Examples :

Input  : {1, 5, 3, 19, 18, 25};
Output : 1
Minimum difference is between 18 and 19

Input  : {30, 5, 20, 9};
Output : 4
Minimum difference is between 5 and 9

Input  : {1, 19, -4, 31, 38, 25, 100};
Output : 5
Minimum difference is between 1 and -4

Method 1 (Simple: O(n2)
A simple solution is to use two loops.

## C/C++

 // C++ implementation of simple method to find // minimum difference between any pair #include using namespace std;    // Returns minimum difference between any pair int findMinDiff(int arr[], int n) {    // Initialize difference as infinite    int diff = INT_MAX;       // Find the min diff by comparing difference    // of all possible pairs in given array    for (int i=0; i

## Java

 // Java implementation of simple method to find // minimum difference between any pair    class GFG {     // Returns minimum difference between any pair     static int findMinDiff(int[] arr, int n)     {         // Initialize difference as infinite         int diff = Integer.MAX_VALUE;                // Find the min diff by comparing difference         // of all possible pairs in given array         for (int i=0; i

## Python

 # Python implementation of simple method to find # minimum difference between any pair    # Returns minimum difference between any pair def findMinDiff(arr, n):     # Initialize difference as infinite     diff = 10**20            # Find the min diff by comparing difference     # of all possible pairs in given array     for i in range(n-1):         for j in range(i+1,n):             if abs(arr[i]-arr[j]) < diff:                 diff = abs(arr[i] - arr[j])        # Return min diff     return diff    # Driver code arr = [1, 5, 3, 19, 18, 25] n = len(arr) print("Minimum difference is " + str(findMinDiff(arr, n)))    # This code is contributed by Pratik Chhajer

## C#

 // C# implementation of simple method to find // minimum difference between any pair using System;    class GFG {            // Returns minimum difference between any pair     static int findMinDiff(int []arr, int n)     {                    // Initialize difference as infinite         int diff = int.MaxValue;                // Find the min diff by comparing difference         // of all possible pairs in given array         for (int i = 0; i < n-1; i++)             for (int j = i+1; j < n; j++)                 if (Math.Abs((arr[i] - arr[j]) ) < diff)                     diff = Math.Abs((arr[i] - arr[j]));                // Return min diff          return diff;     }        // Driver method to test the above function     public static void Main()     {         int []arr = new int[]{1, 5, 3, 19, 18, 25};         Console.Write("Minimum difference is " +                         findMinDiff(arr, arr.Length));     } }    // This code is contributed by nitin mittal.

## PHP



Output :

Minimum difference is 1

Method 2 (Efficient: O(n Log n)
The idea is to use sorting. Below are steps.
1) Sort array in ascending order. This step takes O(n Log n) time.
2) Initialize difference as infinite. This step takes O(1) time.
3) Compare all adjacent pairs in sorted array and keep track of minimum difference. This step takes O(n) time.

Below is implementation of above idea.

## C++

 // C++ program to find minimum difference between // any pair in an unsorted array #include using namespace std;    // Returns minimum difference between any pair int findMinDiff(int arr[], int n) {    // Sort array in non-decreasing order    sort(arr, arr+n);       // Initialize difference as infinite    int diff = INT_MAX;       // Find the min diff by comparing adjacent    // pairs in sorted array    for (int i=0; i

## Java

 // Java program to find minimum difference between // any pair in an unsorted array    import java.util.Arrays;    class GFG {     // Returns minimum difference between any pair     static int findMinDiff(int[] arr, int n)     {            // Sort array in non-decreasing order            Arrays.sort(arr);                        // Initialize difference as infinite            int diff = Integer.MAX_VALUE;                        // Find the min diff by comparing adjacent            // pairs in sorted array            for (int i=0; i

## Python

 # Python program to find minimum difference between # any pair in an unsorted array    # Returns minimum difference between any pair def findMinDiff(arr, n):        # Sort array in non-decreasing order     arr = sorted(arr)        # Initialize difference as infinite     diff = 10**20        # Find the min diff by comparing adjacent     # pairs in sorted array     for i in range(n-1):         if arr[i+1] - arr[i] < diff:             diff = arr[i+1] - arr[i]        # Return min diff     return diff    # Driver code arr = [1, 5, 3, 19, 18, 25] n = len(arr) print("Minimum difference is " + str(findMinDiff(arr, n)))    # This code is contributed by Pratik Chhajer

## C#

 // C# program to find minimum  // difference between any pair // in an unsorted array using System;    class GFG {     // Returns minimum difference      // between any pair     static int findMinDiff(int[] arr,                             int n)     {         // Sort array in          // non-decreasing order         Array.Sort(arr);                    // Initialize difference         // as infinite         int diff = int.MaxValue;                    // Find the min diff by          // comparing adjacent pairs         // in sorted array         for (int i = 0; i < n - 1; i++)             if (arr[i + 1] - arr[i] < diff)                 diff = arr[i + 1] - arr[i];                    // Return min diff         return diff;     }        // Driver Code     public static void Main()     {         int []arr = new int[]{1, 5, 3, 19, 18, 25};         Console.WriteLine("Minimum difference is " +                            findMinDiff(arr, arr.Length));            } }    //This code is contributed by anuj_67.

## PHP



Output :

Minimum difference is 1

## tags:

Arrays Sorting Amazon Amazon Arrays Sorting