Binary Search ISC Computer Science 2020 Theory

Design a class BinSearch to search for a particular value in an array.

Some of the members of the class are given below:

Class name: BinSearch
Data members/instance variables:
arr[]: to store integer elements
n: integer to store the size of the array
Member functions/methods:
BinSearch(int num): parameterized constructor to initialize n = num
void fillArray(): to enter elements in the array
void sort(): sorts the array elements in ascending order using any standard sorting technique
int binSearch(int l, int u, int v): searches for the value 'v' using binary search and recursive technique and returns its location if found otherwise returns -1.

Define the class BinSearch giving details of the constructor, void fillArray(), void sort(), and binSearch(int, int, int). Define the main() function to create an object and call the functions accordingly to enable the task.

import java.util.Scanner;
class BinSearch{
    int arr[];
    int n;
    public BinSearch(int num){
        n = num;
        arr = new int[n];
    }
    public void fillArray(){
        Scanner in = new Scanner(System.in);
        System.out.println("Enter " + n + " elements:");
        for(int i = 0; i < arr.length; i++)
            arr[i] = Integer.parseInt(in.nextLine());
    }
    public void sort(){
        for(int i = 0; i < arr.length; i++){
            for(int j = 0; j < arr.length - 1 - i; j++){
                if(arr[j] > arr[j + 1]){
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    public int binSearch(int l, int u, int v){
        if(l > u)
            return -1;
        int mid = (l + u) / 2;
        if(v == arr[mid])
            return mid;
        else if(v < arr[mid])
            return binSearch(l, mid - 1, v);
        else
            return binSearch(mid + 1, u, v);
    }
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        System.out.print("Array size: ");
        int size = Integer.parseInt(in.nextLine());
        BinSearch obj = new BinSearch(size);
        obj.fillArray();
        obj.sort();
        System.out.print("Element to be searched: ");
        int key = Integer.parseInt(in.nextLine());
        int p = obj.binSearch(0, size - 1, key);
        if(p == -1)
            System.out.println("Element not found.");
        else
            System.out.println("Element found!");
    }
}

Comments

Popular posts from this blog

Encrypt Program ISC Specimen 2023 Theory

No Repeat Program ISC Computer Science 2022 Semester 2 Theory

Bank Inheritance Program ISC Specimen 2023 Theory