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.