# Find the Minimum element in a Sorted and Rotated Array

Given a sorted array **arr[] **(may be distinct or may contain duplicates) of size **N** that is rotated at some unknown point, the task is to find the minimum element in it.

**Examples:**

Input:arr[]={5, 6, 1, 2, 3, 4}Output:1Explanation:1 is the minimum element present in the array.

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

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

Follow the steps mentioned below to implement the idea:

- Declare a variable (say
**min_ele**) to store the minimum value and initialize it with**arr[0]**. - Traverse the array from the start.
- Update the minimum value (
**min_ele**) if the current element is less than it. - Return the final value of
**min_ele**as the required answer.

Below is the implementation of the above approach.

`/*package whatever //do not write package name here */`

**import**`java.io.*;`

**class**`GFG {`

`// Function to find the minimum value`

**static****int**`findMin(`

**int**`arr[], `

**int**`n)`

`{`

**int**`min_ele = arr[0];`

`// Traversing over array to`

`// find minimum element`

**for**`(`

**int**`i = 0; i < n; i++) {`

**if**`(arr[i] < min_ele) {`

`min_ele = arr[i];`

`}`

`}`

**return**`min_ele;`

`}`

**public****static****void**`main (String[] args) {`

**int**`arr[] = { 5, 6, 1, 2, 3, 4`

`};`

**int**`N = arr.length;`

`System.out.println(findMin(arr, N));`

`}`

`}`

**Output**

`1`

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