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.
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
Post a Comment