Program to demonstrate how to perform Binary Search for an element over primitive arrays in Java
Video tutorial to demonstrate how to perform Binary Search in Java.
package com.hubberspot.example;
import java.util.Arrays;
public class PrimitiveArrayBinarySearch {
public static void main(String[] args) {
byte[] b = new byte [] { 3, 6, 7, 2, 1 };
short[] s = new short[] { 9, 5, 4, 3, 2 };
int[] i = new int[] { 34, 12, 1, 23, 78 };
long[] l = new long[] { 100, 99, 45, 23, 1 };
float[] f = new float[] { 3.0f, 6.1f, 7.6f, 2.5f, 1.1f };
double[] d = new double[] { 3.6, 6.4, 7.2, 2.7, 1.8 };
char[] c = new char[] {'e','g','s','a','c'};
System.out.println("Original Arrays are as : ");
System.out.println("-----------------------------------------");
System.out.print("byte array : [");
for(int j = 0; j < 5; j++) {
System.out.print(b[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.print("short array : [");
for(int j = 0; j < 5; j++) {
System.out.print(s[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.print("int array : [");
for(int j = 0; j < 5; j++) {
System.out.print(i[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.print("long array : [");
for(int j = 0; j < 5; j++) {
System.out.print(l[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.print("float array : [");
for(int j = 0; j < 5; j++) {
System.out.print(f[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.print("double array : [");
for(int j = 0; j < 5; j++) {
System.out.print(d[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.print("char array : [");
for(int j = 0; j < 5; j++) {
System.out.print(c[j] + " ");
}
System.out.println("]");
System.out.println("-----------------------------------------");
System.out.println();
System.out.println();
// Sorting the primitives array using Arrays.sort()
// Its important to sort elements before doing binary
// search over each elements
Arrays.sort(b);
Arrays.sort(s);
Arrays.sort(i);
Arrays.sort(l);
Arrays.sort(f);
Arrays.sort(d);
Arrays.sort(c);
// creating valid searches below :
byte searchByteKey = 1;
short searchShortKey = 4;
int searchIntKey = 1;
long searchLongKey = 45;
float searchFloatKey = 6.1f;
double searchDoubleKey = 6.4;
char searchCharKey = 'a';
System.out.println();
System.out.println("After performing BinarySearch of valid keys : ");
System.out.println("-----------------------------------------");
int byteResult = Arrays.binarySearch(b,searchByteKey);
System.out.println("Result of binary search of 1 is : " + byteResult);
System.out.println("-----------------------------------------");
int shortResult = Arrays.binarySearch(s,searchShortKey);
System.out.println("Result of binary search of 4 is : " + shortResult);
System.out.println("-----------------------------------------");
int intResult = Arrays.binarySearch(i,searchIntKey);
System.out.println("Result of binary search of 1 is : " + intResult);
System.out.println("-----------------------------------------");
int longResult = Arrays.binarySearch(l,searchLongKey);
System.out.println("Result of binary search of 45 is : " + longResult);
System.out.println("-----------------------------------------");
int floatResult = Arrays.binarySearch(f,searchFloatKey);
System.out.println("Result of binary search of 6.1f is : " + floatResult);
System.out.println("-----------------------------------------");
int doubleResult = Arrays.binarySearch(d,searchDoubleKey);
System.out.println("Result of binary search of 6.4 is : " + doubleResult);
System.out.println("-----------------------------------------");
int charResult = Arrays.binarySearch(c,searchCharKey);
System.out.println("Result of binary search of 'a' is : " + charResult);
System.out.println("-----------------------------------------");
// creating invalid search keys below :
searchByteKey = 20;
searchShortKey = 40;
searchIntKey = 25;
searchLongKey = 62;
searchFloatKey = 9.0f;
searchDoubleKey = 99.0;
searchCharKey = 'z';
System.out.println();
System.out.println("After performing BinarySearch of invalid keys : ");
System.out.println("-----------------------------------------");
byteResult = Arrays.binarySearch(b,searchByteKey);
System.out.println("Result of binary search of 20 is : " + byteResult);
System.out.println("-----------------------------------------");
shortResult = Arrays.binarySearch(s,searchShortKey);
System.out.println("Result of binary search of 40 is : " + shortResult);
System.out.println("-----------------------------------------");
intResult = Arrays.binarySearch(i,searchIntKey);
System.out.println("Result of binary search of 25 is : " + intResult);
System.out.println("-----------------------------------------");
longResult = Arrays.binarySearch(l,searchLongKey);
System.out.println("Result of binary search of 62 is : " + longResult);
System.out.println("-----------------------------------------");
floatResult = Arrays.binarySearch(f,searchFloatKey);
System.out.println("Result of binary search of 9.0f is : " + floatResult);
System.out.println("-----------------------------------------");
doubleResult = Arrays.binarySearch(d,searchDoubleKey);
System.out.println("Result of binary search of 99.0 is : " + doubleResult);
System.out.println("-----------------------------------------");
charResult = Arrays.binarySearch(c,searchCharKey);
System.out.println("Result of binary search of 'z' is : " + charResult);
System.out.println("-----------------------------------------");
}
}
Output of the program : Video tutorial to demonstrate how to perform Binary Search in Java.


