Java Program to find the peak element of an array using Binary Search approach

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 Solve Travelling Salesman Problem for Unweighted Graph
Xử lý ngoại lệ đối với trường hợp ghi đè phương thức trong java
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
The Guide to RestTemplate
Guide to Dynamic Tests in Junit 5
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Transactions with Spring and JPA
Spring REST API + OAuth2 + Angular
Java Program to Create a Random Graph Using Random Edge Generation
Jackson Date
Map Interface trong java
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Java Program to Check if a Given Graph Contain Hamiltonian Cycle or Not
Hướng dẫn Java Design Pattern – Dependency Injection
Java Program to Implement Variable length array
Java Program to Perform Partition of an Integer in All Possible Ways
Spring Boot Actuator
The StackOverflowError in Java
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Getting Started with GraphQL and Spring Boot
More Jackson Annotations
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Java – Write a Reader to File
Guide to Character Encoding
String Joiner trong Java 8
Introduction to Eclipse Collections
Servlet 3 Async Support with Spring MVC and Spring Security
Convert XML to JSON Using Jackson
Java Program to Find Shortest Path Between All Vertices Using Floyd-Warshall’s Algorithm
Uploading MultipartFile with Spring RestTemplate
Java Program to Check whether Undirected Graph is Connected using BFS
Adding Shutdown Hooks for JVM Applications