Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence

This is a java program to search sequence using binary search. This is a simple extension of binary search algorithm to find an element.

Here is the source code of the Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

package com.sanfoundry.combinatorial;
 
import java.util.Random;
import java.util.Scanner;
 
public class BinarySearchSequence
{
    public static void searchSequence(int[] array, int[] search)
    {
        int first, last, middle;
        first = 0;
        last = array.length - 1;
        boolean flag = true;
        for (int i = 0; i < search.length; i++)
        {
            middle = (first + last) / 2;
            while (first <= last && flag == true)
            {
                if (array[middle] < search[i])
                {
                    first = middle + 1;
                }
                else if (array[middle] == search[i])
                {
                    System.out.println(search[i] + " found at location "
                            + (middle + 1) + ".");
                    first = 0;
                    last = array.length - 1;
                    break;
                }
                else
                {
                    last = middle - 1;
                }
                middle = (first + last) / 2;
            }
            if (first > last)
            {
                System.out
                        .println(search[i] + " is not present in the list.");
                flag = false;
            }
        }
    }
 
    public static void main(String args[])
    {
        int c, n, search[], array[];
        Scanner in = new Scanner(System.in);
        System.out.println("Enter number of elements: ");
        n = in.nextInt();
        array = new int[n];
        Random rand = new Random();
        for (c = 0; c < n; c++)
        {
            array = rand.nextInt(100);
        }
        System.out.println("Elements: ");
        for (int i = 0; i < array.length; i++)
        {
            System.out.print(array[i] + " ");
        }
        System.out.println("\nEnter length of sequence to find: ");
        int m = in.nextInt();
        search = new int[m];
        System.out.println("Enter the sequence to find: ");
        for (int i = 0; i < m; i++)
        {
            search[i] = in.nextInt();
        }
        searchSequence(array, search);
        in.close();
    }
}

Output:

$ javac BinarySearchSequence.java
$ java BinarySearchSequence
 
Enter number of elements: 
10
Elements: 
68 45 85 63 7 48 44 93 10 20 
Enter length of sequence to find: 
2
Enter the sequence to find: 
7 48
7 found at location 5.
48 found at location 6.
 
 
Enter number of elements: 
10
Elements: 
60 52 44 55 55 25 34 97 24 18 
Enter length of sequence to find: 
3
Enter the sequence to find: 
2 3 4 
2 is not present in the list.
3 is not present in the list.
4 is not present in the list.

Related posts:

Java Program to Solve Tower of Hanoi Problem using Stacks
Simplify the DAO with Spring and Java Generics
Java Program to Perform Insertion in a BST
Spring Security OAuth2 – Simple Token Revocation
Java Program to Check Whether Topological Sorting can be Performed in a Graph
JUnit 5 for Kotlin Developers
Mệnh đề if-else trong java
Guide to Mustache with Spring Boot
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Java Program to Implement Horner Algorithm
Comparing Dates in Java
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Bootstrapping Hibernate 5 with Spring
Guide to CopyOnWriteArrayList
Registration with Spring Security – Password Encoding
Java Program to Implement ConcurrentLinkedQueue API
Handling Errors in Spring WebFlux
A Quick Guide to Spring Cloud Consul
A Quick Guide to Using Keycloak with Spring Boot
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Java – Rename or Move a File
Spring Boot - Apache Kafka
Java Program to Check Whether a Given Point is in a Given Polygon
Quản lý bộ nhớ trong Java với Heap Space vs Stack
Java Program to Implement PriorityQueue API
Giới thiệu JDBC Connection Pool
Hướng dẫn sử dụng biểu thức chính quy (Regular Expression) trong Java
Biến trong java
Abstract class và Interface trong Java
Query Entities by Dates and Times with Spring Data JPA
Spring Cloud AWS – Messaging Support
Disable DNS caching