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 Radix Sort
How to Convert List to Map in Java
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Spring Boot - Build Systems
Java Program to Describe the Representation of Graph using Incidence List
Join and Split Arrays and Collections in Java
Java Program to Find Path Between Two Nodes in a Graph
Introduction to the Java NIO2 File API
Spring Security Authentication Provider
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Guide to Java 8’s Collectors
Object cloning trong java
Java Program to Represent Graph Using 2D Arrays
So sánh HashMap và HashSet trong Java
Giới thiệu về Stream API trong Java 8
Lớp Arrarys trong Java (Arrays Utility Class)
Hướng dẫn sử dụng lớp Console trong java
Binary Search
Spring Data JPA and Null Parameters
Predicate trong Java 8
Java Program to do a Depth First Search/Traversal on a graph non-recursively
Java Program to Perform Quick Sort on Large Number of Elements
An Intro to Spring Cloud Task
Java Program to Implement vector
Java Program to Implement Quick Sort Using Randomization
Registration – Activate a New Account by Email
Hướng dẫn Java Design Pattern – MVC
Giới thiệu JDBC Connection Pool
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Introduction to Spring Data REST
Lập trình đa luồng với Callable và Future trong Java
Using Spring ResponseEntity to Manipulate the HTTP Response