Skip to content

Commit 8a5c2cc

Browse files
authored
Add files via upload
1 parent d6c7ffd commit 8a5c2cc

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

BinarySearch.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import java.util.Scanner;
2+
3+
/*
4+
* Java Program to implement binary search without using recursion
5+
*/
6+
public class BinarySearch {
7+
8+
public static void main(String[] args) {
9+
10+
Scanner commandReader = new Scanner(System.in);
11+
System.out.println("Welcome to Java Program to perform
12+
binary search on int array");
13+
System.out.println("Enter total number of elements : ");
14+
int length = commandReader.nextInt();
15+
int[] input = new int[length];
16+
17+
System.out.printf("Enter %d integers %n", length);
18+
for (int i = 0; i < length; i++) {
19+
input[i] = commandReader.nextInt();
20+
}
21+
22+
System.out.println("Please enter number to be searched in array
23+
(sorted order)");
24+
int key = commandReader.nextInt();
25+
26+
int index = performBinarySearch(input, key);
27+
28+
if (index == -1) {
29+
System.out.printf("Sorry, %d is not found in array %n", key);
30+
} else {
31+
System.out.printf("%d is found in array at index %d %n", key,
32+
index);
33+
}
34+
35+
commandReader.close();
36+
37+
}
38+
39+
/**
40+
* Java method to perform binary search. It accept an integer array and a
41+
* number and return the index of number in the array. If number doesn't
42+
* exists in array then it return -1
43+
*
44+
* @param input
45+
* @param number
46+
* @return index of given number in array or -1 if not found
47+
*/
48+
public static int performBinarySearch(int[] input, int number) {
49+
int low = 0;
50+
int high = input.length - 1;
51+
52+
while (high >= low) {
53+
int middle = (low + high) / 2;
54+
if (input[middle] == number) {
55+
return middle;
56+
} else if (input[middle] < number) {
57+
low = middle + 1;
58+
} else if (input[middle] > number) {
59+
high = middle - 1;
60+
}
61+
}
62+
return -1;
63+
}
64+
65+
}

0 commit comments

Comments
 (0)