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

This is a Java Program to find minimum element of a rotated sorted array. The following program uses a binary search approach to find the minimum element of a rotated sorted array. Time complexity is O (log n)

Here is the source code of the Java program to find minimum element of a rotated sorted array. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

/*
 * Java Program to Find the Minimum element of a rotated 
 * sorted Array using Binary Search approach
 */
 
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);
    }
}
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

Related posts:

Simplify the DAO with Spring and Java Generics
Java Program to Implement Best-First Search
Auditing with JPA, Hibernate, and Spring Data JPA
REST Web service: Upload và Download file với Jersey 2.x
RegEx for matching Date Pattern in Java
Guide to @ConfigurationProperties in Spring Boot
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
Java Program to Check Whether a Given Point is in a Given Polygon
Find the Registered Spring Security Filters
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Adding Shutdown Hooks for JVM Applications
Receive email using IMAP
Java Program to Implement WeakHashMap API
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Getting Started with Stream Processing with Spring Cloud Data Flow
Introduction to Spring Cloud Stream
Thao tác với tập tin và thư mục trong Java
New Features in Java 9
Java Program to Construct K-D Tree for 2 Dimensional Data
What is a POJO Class?
Lập trình đa luồng với Callable và Future trong Java
Java Program to Implement Karatsuba Multiplication Algorithm
Giới thiệu Json Web Token (JWT)
Spring Data Java 8 Support
Guide to Mustache with Spring Boot
Java Program to Perform Partial Key Search in a K-D Tree
Java Program to Implement Bloom Filter
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Convert Hex to ASCII in Java
Java Program to Implement Binary Search Tree
Spring Security OAuth Login with WebFlux