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:
Dynamic Proxies in Java
A Quick Guide to Spring Cloud Consul
Binary Search
Java Program to Implement Ternary Search Tree
How to Get the Last Element of a Stream in Java?
Spring Data JPA @Modifying Annotation
MyBatis with Spring
Java Program to Implement AVL Tree
Convert XML to JSON Using Jackson
Java String Conversions
Spring Cloud – Securing Services
Các kiểu dữ liệu trong java
Java Program to Implement Extended Euclid Algorithm
Java InputStream to Byte Array and ByteBuffer
An Intro to Spring Cloud Zookeeper
Java Program to Implement Sparse Array
Introduction to Spring MVC HandlerInterceptor
Spring 5 WebClient
A Guide To UDP In Java
Spring Boot - Interceptor
String Joiner trong Java 8
Java Program to Emulate N Dice Roller
An Intro to Spring Cloud Contract
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Lớp LinkedHashMap trong Java
Convert Hex to ASCII in Java
Java Program to Optimize Wire Length in Electrical Circuit
Sending Emails with Java
Xử lý ngoại lệ trong Java (Exception Handling)
Spring Boot - Tracing Micro Service Logs
Java Program to Implement Heap
Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range