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 Program to Implement Gauss Seidel Method
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Java Program to Implement Stack using Two Queues
Java Program to Perform Insertion in a BST
Giới thiệu Design Patterns
Feign – Tạo ứng dụng Java RESTful Client
Java 8 Streams peek() API
Các kiểu dữ liệu trong java
Java Program to Implement Interpolation Search Algorithm
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Using the Not Operator in If Conditions in Java
Java Program to Find kth Largest Element in a Sequence
Logging in Spring Boot
Java Program to Implement HashTable API
Convert Hex to ASCII in Java
Batch Processing with Spring Cloud Data Flow
Java Program to Implement Heap Sort Using Library Functions
Spring Security – Reset Your Password
Java Program to Perform Polygon Containment Test
Adding a Newline Character to a String in Java
Hướng dẫn sử dụng Lớp FilePermission trong java
Java Program to Implement Hash Tree
Prevent Brute Force Authentication Attempts with Spring Security
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Merging Two Maps with Java 8
Java Program to Implement Nth Root Algorithm
Java IO vs NIO
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Java Program to Find Transitive Closure of a Graph
Java Program to Compute Cross Product of Two Vectors
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Java Program to Implement Miller Rabin Primality Test Algorithm