# Maximum difference between two elements in an Array

Given an array **arr[]** of **N** integers, the task is to find the maximum difference between any two elements of the array.**Examples:**

Input:arr[] = {2, 1, 5, 3}Output:4

|5 – 1| = 4Input:arr[] = {-10, 4, -9, -5}Output:14

**Approach:** The maximum absolute difference in the array will always be the absolute difference between the minimum and the maximum element from the array.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to return the maximum` `// absolute difference between` `// any two elements of the array` `int` `maxAbsDiff(` `int` `arr[], ` `int` `n)` `{` ` ` `// To store the minimum and the maximum` ` ` `// elements from the array` ` ` `int` `minEle = arr[0];` ` ` `int` `maxEle = arr[0];` ` ` `for` `(` `int` `i = 1; i < n; i++) {` ` ` `minEle = min(minEle, arr[i]);` ` ` `maxEle = max(maxEle, arr[i]);` ` ` `}` ` ` `return` `(maxEle - minEle);` `}` `// Driver code` `int` `main()` `{` ` ` `int` `arr[] = { 2, 1, 5, 3 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `cout << maxAbsDiff(arr, n);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `class` `GFG {` ` ` `// Function to return the maximum` ` ` `// absolute difference between` ` ` `// any two elements of the array` ` ` `static` `int` `maxAbsDiff(` `int` `arr[], ` `int` `n)` ` ` `{` ` ` `// To store the minimum and the maximum` ` ` `// elements from the array` ` ` `int` `minEle = arr[` `0` `];` ` ` `int` `maxEle = arr[` `0` `];` ` ` `for` `(` `int` `i = ` `1` `; i < n; i++) {` ` ` `minEle = Math.min(minEle, arr[i]);` ` ` `maxEle = Math.max(maxEle, arr[i]);` ` ` `}` ` ` `return` `(maxEle - minEle);` ` ` `}` ` ` `// Driver code` ` ` `public` `static` `void` `main(String[] args)` ` ` `{` ` ` `int` `[] arr = { ` `2` `, ` `1` `, ` `5` `, ` `3` `};` ` ` `int` `n = arr.length;` ` ` `System.out.print(maxAbsDiff(arr, n));` ` ` `}` `}` |

## Python3

`# Python3 implementation of the approach` `# Function to return the maximum` `# absolute difference between` `# any two elements of the array` `def` `maxAbsDiff(arr, n):` ` ` `# To store the minimum and the maximum` ` ` `# elements from the array` ` ` `minEle ` `=` `arr[` `0` `]` ` ` `maxEle ` `=` `arr[` `0` `]` ` ` `for` `i ` `in` `range` `(` `1` `, n):` ` ` `minEle ` `=` `min` `(minEle, arr[i])` ` ` `maxEle ` `=` `max` `(maxEle, arr[i])` ` ` `return` `(maxEle ` `-` `minEle)` `# Driver code` `arr ` `=` `[` `2` `, ` `1` `, ` `5` `, ` `3` `]` `n ` `=` `len` `(arr)` `print` `(maxAbsDiff(arr, n))` `# This code is contributed` `# by mohit kumar` |

## C#

`// C# implementation of the approach` `using` `System;` `class` `GFG` `{` ` ` `// Function to return the maximum` ` ` `// absolute difference between` ` ` `// any two elements of the array` ` ` `static` `int` `maxAbsDiff(` `int` `[]arr, ` `int` `n)` ` ` `{` ` ` `// To store the minimum and the maximum` ` ` `// elements from the array` ` ` `int` `minEle = arr[0];` ` ` `int` `maxEle = arr[0];` ` ` `for` `(` `int` `i = 1; i < n; i++)` ` ` `{` ` ` `minEle = Math.Min(minEle, arr[i]);` ` ` `maxEle = Math.Max(maxEle, arr[i]);` ` ` `}` ` ` `return` `(maxEle - minEle);` ` ` `}` ` ` `// Driver code` ` ` `public` `static` `void` `Main()` ` ` `{` ` ` `int` `[] arr = { 2, 1, 5, 3 };` ` ` `int` `n = arr.Length;` ` ` ` ` `Console.WriteLine(maxAbsDiff(arr, n));` ` ` `}` `}` `// This code is contributed by Ryuga` |

## PHP

`<?php` `// PHP implementation of the approach` `// Function to return the maximum` `// absolute difference between` `// any two elements of the array` `function` `maxAbsDiff(` `$arr` `, ` `$n` `)` `{` ` ` `// To store the minimum and the maximum` ` ` `// elements from the array` ` ` `$minEle` `= ` `$arr` `[0];` ` ` `$maxEle` `= ` `$arr` `[0];` ` ` `for` `(` `$i` `= 1; ` `$i` `< ` `$n` `; ` `$i` `++)` ` ` `{` ` ` `$minEle` `= min(` `$minEle` `, ` `$arr` `[` `$i` `]);` ` ` `$maxEle` `= max(` `$maxEle` `, ` `$arr` `[` `$i` `]);` ` ` `}` ` ` `return` `(` `$maxEle` `- ` `$minEle` `);` `}` `// Driver code` `$arr` `= ` `array` `(2, 1, 5, 3);` `$n` `= sizeof(` `$arr` `);` `echo` `maxAbsDiff(` `$arr` `, ` `$n` `);` `// This code is contributed` `// by Akanksha Rai` |

## Javascript

`<script>` `// JavaScript implementation of the approach` `// Function to return the maximum` `// absolute difference between` `// any two elements of the array` `function` `maxAbsDiff(arr, n)` `{` ` ` `// To store the minimum and the maximum` ` ` `// elements from the array` ` ` `let minEle = arr[0];` ` ` `let maxEle = arr[0];` ` ` `for` `(let i = 1; i < n; i++) {` ` ` `minEle = Math.min(minEle, arr[i]);` ` ` `maxEle = Math.max(maxEle, arr[i]);` ` ` `}` ` ` `return` `(maxEle - minEle);` `}` `// Driver code` ` ` `let arr = [ 2, 1, 5, 3 ];` ` ` `let n = arr.length;` ` ` `document.write(maxAbsDiff(arr, n));` `</script>` |

**Output**

4

**Time Complexity **: O(n)

**Auxiliary Space **: O(1)

**Another Approach ( Using STL)** : The maximum absolute difference in the array will always be the absolute difference between the minimum and the maximum element from the array.Below is the implementation of the above approach:

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to return the maximum` `// absolute difference between` `// any two elements of the array` `int` `maxAbsDiff(` `int` `arr[], ` `int` `n)` `{` ` ` `// To find the minimum and the maximum element` ` ` `// using stl` ` ` `int` `maxele = *max_element(arr, arr + n);` ` ` `int` `minele = *min_element(arr, arr + n);` ` ` `// make variable to store answer` ` ` `int` `ans = ` `abs` `(maxele - minele);` ` ` `return` `ans;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `arr[] = { -10, 4, -9, -5 };` ` ` `int` `n = ` `sizeof` `(arr) / ` `sizeof` `(arr[0]);` ` ` `cout << maxAbsDiff(arr, n);` ` ` `return` `0;` `}` |

**Output**

14

**Time Complexity** : O(n)