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:
Collect a Java Stream to an Immutable Collection
Spring Boot Gradle Plugin
Java Program to Implement Find all Forward Edges in a Graph
Java Program to Solve TSP Using Minimum Spanning Trees
Convert XML to JSON Using Jackson
Lập trình mạng với java
Từ khóa static và final trong java
Custom JUnit 4 Test Runners
Serialize Only Fields that meet a Custom Criteria with Jackson
A Guide to Queries in Spring Data MongoDB
Sort a HashMap in Java
Java Program to Implement Lloyd’s Algorithm
Guide to the Volatile Keyword in Java
Java Program to Implement Randomized Binary Search Tree
Java Program to Create a Balanced Binary Tree of the Incoming Data
Java Scanner hasNext() vs. hasNextLine()
Case-Insensitive String Matching in Java
Custom HTTP Header with the HttpClient
Java Program to Implement Splay Tree
Lập trình đa luồng với CompletableFuture trong Java 8
Spring JDBC
Spring Boot - Unit Test Cases
Java Program to Solve Knapsack Problem Using Dynamic Programming
Java Program to Compute Determinant of a Matrix
Java Program to Implement Range Tree
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Tiêu chuẩn coding trong Java (Coding Standards)
Cơ chế Upcasting và Downcasting trong java
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Jackson vs Gson
Marker Interface trong Java
Java Program to Perform Insertion in a 2 Dimension K-D Tree