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:
Guide to the Synchronized Keyword in Java
Java Program to Generate Randomized Sequence of Given Range of Numbers
Cài đặt và sử dụng Swagger UI
Java – Convert File to InputStream
Implementing a Runnable vs Extending a Thread
Spring Boot Annotations
Returning Custom Status Codes from Spring Controllers
Guide to @ConfigurationProperties in Spring Boot
HttpClient Basic Authentication
Java Program to Implement Fenwick Tree
Hướng dẫn sử dụng lớp Console trong java
RestTemplate Post Request with JSON
Class Loaders in Java
A Guide to ConcurrentMap
Finding Max/Min of a List or Collection
Java Program to Solve Knapsack Problem Using Dynamic Programming
Java Program to Implement Fermat Factorization Algorithm
Initialize a HashMap in Java
Exploring the New Spring Cloud Gateway
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Implement Dijkstra’s Algorithm using Queue
The Guide to RestTemplate
Java Program to Perform String Matching Using String Library
Java Program to Implement Ternary Heap
Java Program to Perform Cryptography Using Transposition Technique
Hướng dẫn Java Design Pattern – Flyweight
Java Program to Implement Double Order Traversal of a Binary Tree
Retrieve User Information in Spring Security
Apache Camel with Spring Boot
Java Program for Douglas-Peucker Algorithm Implementation
Biểu thức Lambda trong Java 8 – Lambda Expressions
Test a REST API with Java