Monday, 27 November 2017

Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach


Code:

import java.util.Scanner;

public class MinimumElementInRotatedSortedArray
{
    public static void main(String[] args) 
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter number of elements in array");
        int N = scan.nextInt();
        int[] arr = new int[ N ];
        /* Accept N elements */
        System.out.println("Enter "+ N +" elements of rotated sorted array");
        for (int i = 0; i < N; i++)
            arr[i] = scan.nextInt();
        System.out.println("Minimum element = "+ min(arr));
    }
    public static int min(int[] arr)
    {
        return min(arr, 0, arr.length - 1);
    }
    public static int min(int[] arr, int low, int high)
    {
        if (high < low)  
            return arr[0];        
        if (high == low) 
            return arr[low];
        /* Calculate mid position */
        int mid = (high + low)/2;
        if (mid < high && arr[mid + 1] < arr[mid])
           return arr[mid + 1];            
        if (mid > low && arr[mid] < arr[mid - 1])
           return arr[mid];
        /* recursively find min */   
        if (arr[high] > arr[mid])
           return min(arr, low, mid - 1);
        return min(arr, mid + 1, high);
    }
}


Output:

Enter number of elements in array
10
Enter 10 elements of rotated sorted array
59 78 83 99 24 29 35 49 53 56
Minimum element = 24


Enter number of elements in array
10
Enter 10 elements of rotated sorted array
14 23 34 56 61 67 75 81 90 99
Minimum element = 14


Enter number of elements in array
10
Enter 10 elements of rotated sorted array
2 3 4 5 6 7 8 9 10 1
Minimum element = 1


More Java Programs:




















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...