This is a Java Program to find peak element of an array. A peak element of an array is that element which is greater than its neighbors. The following program uses binary search approach to find a peak element. The time complexity of the following program is O (log n).
Here is the source code of the Java program to find peak element of an array using binary search. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/*
* Java Program to Find the peak element of an array using
* Binary Search approach
*/
import java.util.Scanner;
public class PeakElement2
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter size of array");
int N = scan.nextInt();
int[] arr = new int[ N ];
/* Accept N elements */
System.out.println("Enter "+ N +" elements");
for (int i = 0; i < N; i++)
arr[i] = scan.nextInt();
/* Find Peak Elements */
System.out.print("\nPeak Elements : ");
peak(arr);
System.out.println();
}
public static void peak(int[] arr)
{
peak(arr, 0, arr.length - 1);
}
public static void peak (int arr[], int low, int high)
{
int N = arr.length;
if (high - low < 2)
return;
int mid = (low + high) / 2;
if (arr[mid] > arr[mid - 1] && arr[mid] > arr[mid + 1])
System.out.print(arr[mid] +" ");
/* Recursively find other peak elements */
peak (arr, low, mid);
peak (arr, mid, high);
}
}
Enter size of array 8 Enter 8 elements 87 63 51 25 40 24 6 1 Peak Elements : 40
Related posts:
Java Program to Implement Best-First Search
So sánh HashMap và HashSet trong Java
Introduction to Spliterator in Java
Java Program to Implement Lloyd’s Algorithm
HttpAsyncClient Tutorial
Hướng dẫn Java Design Pattern – Dependency Injection
Using Spring ResponseEntity to Manipulate the HTTP Response
Java Program to Implement Karatsuba Multiplication Algorithm
Spring Boot: Customize Whitelabel Error Page
Java Program to Evaluate an Expression using Stacks
Hướng dẫn sử dụng Lớp FilePermission trong java
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Hướng dẫn Java Design Pattern – Mediator
Simultaneous Spring WebClient Calls
Java Program to Implement Gaussian Elimination Algorithm
Setting the Java Version in Maven
Java Program to Generate Random Numbers Using Middle Square Method
Reversing a Linked List in Java
Introduction to the Java NIO Selector
Validations for Enum Types
Check if there is mail waiting
Spring Boot - Building RESTful Web Services
A Guide to the finalize Method in Java
Java Program to Implement Ternary Tree
Comparing Objects in Java
Java toString() Method
Java Program to Implement Coppersmith Freivald’s Algorithm
Java Scanner hasNext() vs. hasNextLine()
Spring Boot - Google OAuth2 Sign-In
Shuffling Collections In Java
Concrete Class in Java
New Features in Java 8