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:
Java – Reader to InputStream
Flattening Nested Collections in Java
Comparing Long Values in Java
Các nguyên lý thiết kế hướng đối tượng – SOLID
Thực thi nhiều tác vụ cùng lúc như thế nào trong Java?
Spring Boot - Creating Docker Image
Jackson Unmarshalling JSON with Unknown Properties
A Guide to the Java ExecutorService
Convert XML to JSON Using Jackson
The HttpMediaTypeNotAcceptableException in Spring MVC
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
Working With Maps Using Streams
Quick Guide to Spring Controllers
Java Program to Implement Flood Fill Algorithm
Java Program to Implement Fermat Factorization Algorithm
Java Program to Generate a Random Subset by Coin Flipping
Spring Security OAuth2 – Simple Token Revocation
Guide to Mustache with Spring Boot
Java Program to Implement Expression Tree
Hashtable trong java
Java Program to Perform Quick Sort on Large Number of Elements
Spring Boot - Logging
Java Program to Perform the Sorting Using Counting Sort
Giới thiệu Google Guice – Dependency injection (DI) framework
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java Program to Check if a Matrix is Invertible
Java equals() and hashCode() Contracts
Spring WebClient and OAuth2 Support
Guide to System.gc()
Java Program to Represent Graph Using Linked List
Java Program to Generate Random Numbers Using Middle Square Method
Spring WebFlux Filters