# Find minimum difference between any two elements (pair) in given array

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

**Examples :**

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

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

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

** Naive Approach: **To solve the problem follow the below idea:

A simple solution is to use two loops two generate every pair of elements and compare them to get the minimum difference

Below is the implementation of the above approach:

## C++

`// C++ implementation of simple method to find` `// minimum difference between any pair` `#include <bits/stdc++.h>` `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 < n - 1; i++)` ` ` `for` `(` `int` `j = i + 1; j < n; j++)` ` ` `if` `(` `abs` `(arr[i] - arr[j]) < diff)` ` ` `diff = ` `abs` `(arr[i] - arr[j]);` ` ` `// Return min diff` ` ` `return` `diff;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `arr[] = { 1, 5, 3, 19, 18, 25 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `// Function call` ` ` `cout << ` `"Minimum difference is "` `<< findMinDiff(arr, n);` ` ` `return` `0;` `}` |

## 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 < 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 code` ` ` `public` `static` `void` `main(String[] args)` ` ` `{` ` ` `int` `arr[] = ` `new` `int` `[] { ` `1` `, ` `5` `, ` `3` `, ` `19` `, ` `18` `, ` `25` `};` ` ` `// Function call` ` ` `System.out.println(` `"Minimum difference is "` ` ` `+ findMinDiff(arr, arr.length));` ` ` `}` `}` |

## Python3

`# 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` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `arr ` `=` `[` `1` `, ` `5` `, ` `3` `, ` `19` `, ` `18` `, ` `25` `]` ` ` `n ` `=` `len` `(arr)` ` ` `# Function call` ` ` `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 code` ` ` `public` `static` `void` `Main()` ` ` `{` ` ` `int` `[] arr = ` `new` `int` `[] { 1, 5, 3, 19, 18, 25 };` ` ` `// Function call` ` ` `Console.Write(` `"Minimum difference is "` ` ` `+ findMinDiff(arr, arr.Length));` ` ` `}` `}` `// This code is contributed by nitin mittal.` |

## PHP

`<?php` `// PHP implementation of simple` `// method to find minimum` `// difference between any pair` `// Returns minimum difference` `// between any pair` `function` `findMinDiff(` `$arr` `, ` `$n` `)` `{` `// Initialize difference` `// as infinite` `$diff` `= PHP_INT_MAX;` `// Find the min diff by comparing` `// difference of all possible` `// pairs in given array` `for` `(` `$i` `= 0; ` `$i` `< ` `$n` `- 1; ` `$i` `++)` ` ` `for` `(` `$j` `= ` `$i` `+ 1; ` `$j` `< ` `$n` `; ` `$j` `++)` ` ` `if` `(` `abs` `(` `$arr` `[` `$i` `] - ` `$arr` `[` `$j` `]) < ` `$diff` `)` ` ` `$diff` `= ` `abs` `(` `$arr` `[` `$i` `] - ` `$arr` `[` `$j` `]);` `// Return min diff` `return` `$diff` `;` `}` `// Driver code` `$arr` `= ` `array` `(1, 5, 3, 19, 18, 25);` `$n` `= sizeof(` `$arr` `);` `// Function call` `echo` `"Minimum difference is "` `,` ` ` `findMinDiff(` `$arr` `, ` `$n` `);` `// This code is contributed by ajit` `?>` |

## Javascript

`<script>` `// JavaScript program implementation of simple method to find` `// minimum difference between any pair` ` ` `// Returns minimum difference between any pair` ` ` `function` `findMinDiff( arr, n)` ` ` `{` ` ` `// Initialize difference as infinite` ` ` `let diff = Number.MAX_VALUE;` ` ` ` ` `// Find the min diff by comparing difference` ` ` `// of all possible pairs in given array` ` ` `for` `(let i=0; i<n-1; i++)` ` ` `for` `(let 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 Code` ` ` `let arr = [1, 5, 3, 19, 18, 25];` ` ` `document.write(` `"Minimum difference is "` `+` ` ` `findMinDiff(arr, arr.length));` `</script>` |

**Output**

Minimum difference is 1

**Time Complexity:** O(N^{2}).**Auxiliary Space: **O(1)

__Find the minimum difference between any two elements using ____sorting____:__

__Find the minimum difference between any two elements using__

__sorting__

__:__

The idea is to use sorting and compare every adjacent pair of the array

Follow the given steps to solve the problem:

- Sort array in ascending order
- Initialize difference as infinite
- Compare all adjacent pairs in a sorted array and keep track of the minimum difference

Below is the implementation of the above approach:

## C++

`// C++ program to find minimum difference between` `// any pair in an unsorted array` `#include <bits/stdc++.h>` `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 < n - 1; i++)` ` ` `if` `(arr[i + 1] - arr[i] < diff)` ` ` `diff = arr[i + 1] - arr[i];` ` ` `// Return min diff` ` ` `return` `diff;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `arr[] = { 1, 5, 3, 19, 18, 25 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `// Function call` ` ` `cout << ` `"Minimum difference is "` `<< findMinDiff(arr, n);` ` ` `return` `0;` `}` |

## 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 < 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(String[] args)` ` ` `{` ` ` `int` `arr[] = ` `new` `int` `[] { ` `1` `, ` `5` `, ` `3` `, ` `19` `, ` `18` `, ` `25` `};` ` ` `// Function call` ` ` `System.out.println(` `"Minimum difference is "` ` ` `+ findMinDiff(arr, arr.length));` ` ` `}` `}` |

## Python3

`# Python3 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` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `arr ` `=` `[` `1` `, ` `5` `, ` `3` `, ` `19` `, ` `18` `, ` `25` `]` ` ` `n ` `=` `len` `(arr)` ` ` `# Function call` ` ` `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 };` ` ` `// Function call` ` ` `Console.WriteLine(` `"Minimum difference is "` ` ` `+ findMinDiff(arr, arr.Length));` ` ` `}` `}` `// This code is contributed by anuj_67.` |

## PHP

`<?php` `// PHP program to find minimum` `// difference between any pair` `// in an unsorted array` `// Returns minimum difference` `// between any pair` `function` `findMinDiff(` `$arr` `, ` `$n` `)` `{` ` ` `// Sort array in` `// non-decreasing order` `sort(` `$arr` `);` `// Initialize difference` `// as infinite` `$diff` `= PHP_INT_MAX;` `// Find the min diff by` `// comparing adjacent` `// pairs in sorted array` `for` `(` `$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` `$arr` `= ` `array` `(1, 5, 3, 19, 18, 25);` `$n` `= sizeof(` `$arr` `);` `// Function call` `echo` `"Minimum difference is "` `,` ` ` `findMinDiff(` `$arr` `, ` `$n` `);` `// This code is contributed ajit` `?>` |

## Javascript

`<script>` ` ` `// Javascript program to find minimum` ` ` `// difference between any pair` ` ` `// in an unsorted array` ` ` ` ` `// Returns minimum difference` ` ` `// between any pair` ` ` `function` `findMinDiff(arr, n)` ` ` `{` ` ` `// Sort array in` ` ` `// non-decreasing order` ` ` `arr.sort(` `function` `(a, b)` ` ` `{` `return` `a - b});` ` ` ` ` `// Initialize difference` ` ` `// as infinite` ` ` `let diff = Number.MAX_VALUE;` ` ` ` ` `// Find the min diff by` ` ` `// comparing adjacent pairs` ` ` `// in sorted array` ` ` `for` `(let i = 0; i < n - 1; i++)` ` ` `if` `(arr[i + 1] - arr[i] < diff)` ` ` `diff = arr[i + 1] - arr[i];` ` ` ` ` `// Return min diff` ` ` `return` `diff;` ` ` `}` ` ` ` ` `let arr = [1, 5, 3, 19, 18, 25];` ` ` `document.write(` `"Minimum difference is "` ` ` `+ findMinDiff(arr, arr.length));` ` ` `</script>` |

**Output**

Minimum difference is 1

**Time Complexity: **O(N log N)**Auxiliary Space: **O(1)

This article is contributed by **Harshit Agrawal**. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.