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:
Introduction to Spring Boot CLI
Java Program to Perform Matrix Multiplication
Comparing Strings in Java
How to Break from Java Stream forEach
Java Program to subtract two large numbers using Linked Lists
Từ khóa this và super trong Java
The Dining Philosophers Problem in Java
How to Count Duplicate Elements in Arraylist
Simultaneous Spring WebClient Calls
Custom Thread Pools In Java 8 Parallel Streams
Transaction Propagation and Isolation in Spring @Transactional
Getting Started with Forms in Spring MVC
Java Program to Perform Quick Sort on Large Number of Elements
A Custom Media Type for a Spring REST API
Java Program to Implement the One Time Pad Algorithm
CyclicBarrier in Java
Java Program to Emulate N Dice Roller
HashMap trong Java hoạt động như thế nào?
Java Program to Create a Random Linear Extension for a DAG
Java Program to Implement the Program Used in grep/egrep/fgrep
Spring Cloud AWS – S3
Java Program to Implement CountMinSketch
Spring Data MongoDB Transactions
Java Program to Check if a Matrix is Invertible
Uploading MultipartFile with Spring RestTemplate
Java Program to Implement Sieve Of Eratosthenes
JUnit 5 for Kotlin Developers
The Difference Between map() and flatMap()
Java Program for Douglas-Peucker Algorithm Implementation
Intro to Inversion of Control and Dependency Injection with Spring
Java Program to Implement Weight Balanced Tree
Java Program to Implement Sparse Matrix