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:
Giới thiệu Json Web Token (JWT)
Java Program to Perform Finite State Automaton based Search
Hướng dẫn Java Design Pattern – DAO
Biến trong java
Marker Interface trong Java
Date Time trong Java 8
Netflix Archaius with Various Database Configurations
Predicate trong Java 8
Java Program to Implement Stack using Linked List
Introduction to Spring Cloud Netflix – Eureka
Supplier trong Java 8
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
A Quick JUnit vs TestNG Comparison
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
Introduction to Project Reactor Bus
Java Program to Implement Naor-Reingold Pseudo Random Function
Java Program to Perform Left Rotation on a Binary Search Tree
Remove the First Element from a List
Interface trong Java 8 – Default method và Static method
Lớp Collectors trong Java 8
JUnit5 Programmatic Extension Registration with @RegisterExtension
How to Delay Code Execution in Java
Java Program to Implement Graph Structured Stack
A Guide to Java HashMap
Receive email using IMAP
Tổng quan về ngôn ngữ lập trình java
So sánh Array và ArrayList trong Java
Working With Maps Using Streams
Java Program to Perform Partition of an Integer in All Possible Ways
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Programmatic Transaction Management in Spring
Overflow and Underflow in Java