Write a program to initialize an array of 10 numeric elements sorted in ascending order. Accept a value from the user and using binary search method print out the cell position the number occupies in the array.
Answers
Answer:
This program uses binary search algorithm to search an element in given list of elements.
/* Program: Binary Search Example
* Written by: Chaitanya from beginnersbook.com
* Input: Number of elements, element's values, value to be searched
* Output:Position of the number input by user among other numbers*/
import java.util.Scanner;
class BinarySearchExample
{
public static void main(String args[])
{
int counter, num, item, array[], first, last, middle;
//To capture user input
Scanner input = new Scanner(System.in);
System.out.println("Enter number of elements:");
num = input.nextInt();
//Creating array to store the all the numbers
array = new int[num];
System.out.println("Enter " + num + " integers");
//Loop to store each numbers in array
for (counter = 0; counter < num; counter++)
array[counter] = input.nextInt();
System.out.println("Enter the search value:");
item = input.nextInt();
first = 0;
last = num - 1;
middle = (first + last)/2;
while( first <= last )
{
if ( array[middle] < item )
first = middle + 1;
else if ( array[middle] == item )
{
System.out.println(item + " found at location " + (middle + 1) + ".");
break;
}
else
{
last = middle - 1;
}
middle = (first + last)/2;
}
if ( first > last )
System.out.println(item + " is not found.\n");
}
}
Output 1: