class BinarySearch { public static void main(String[] a) { System.out.println(new BS().Start(20)); } } // This class contains an array of integers and // methods to initialize, print and search the array // using Binary Search class BS { int[] number; int size; // Invoke methods to initialize, print and search // for elements on the array public int Start(int sz) { int aux01; int aux02; aux01 = this.Init(sz); aux02 = this.Print(); if (this.Search(8)) System.out.println(1); else System.out.println(0); if (this.Search(19)) System.out.println(1); else System.out.println(0); if (this.Search(20)) System.out.println(1); else System.out.println(0); if (this.Search(21)) System.out.println(1); else System.out.println(0); if (this.Search(37)) System.out.println(1); else System.out.println(0); if (this.Search(38)) System.out.println(1); else System.out.println(0); if (this.Search(39)) System.out.println(1); else System.out.println(0); if (this.Search(50)) System.out.println(1); else System.out.println(0); return 999; } // Search for a specific value (num) using // binary search public boolean Search(int num) { boolean bs01; int right; int left; boolean var_cont; int medium; int aux01; int nt; aux01 = 0; bs01 = false; right = number.length; right = right - 1; left = 0; var_cont = true; while (var_cont) { medium = left + right; medium = this.Div(medium); aux01 = number[medium]; if (num < aux01) right = medium - 1; else left = medium + 1; if (this.Compare(aux01, num)) var_cont = false; else var_cont = true; if (right < left) var_cont = false; else nt = 0; } if (this.Compare(aux01, num)) bs01 = true; else bs01 = false; return bs01; } // This method computes and returns the // integer division of a number (num) by 2 public int Div(int num) { int count01; int count02; int aux03; count01 = 0; count02 = 0; aux03 = num - 1; while (count02 < aux03) { count01 = count01 + 1; count02 = count02 + 2; } return count01; } // This method compares two integers and // returns true if they are equal and false // otherwise public boolean Compare(int num1, int num2) { boolean retval; int aux02; retval = false; aux02 = num2 + 1; if (num1 < num2) retval = false; else if (!(num1 < aux02)) retval = false; else retval = true; return retval; } // Print the integer array public int Print() { int j; j = 1; while (j < (size)) { System.out.println(number[j]); j = j + 1; } System.out.println(99999); return 0; } // Initialize the integer array public int Init(int sz) { int j; int k; int aux02; int aux01; size = sz; number = new int[sz]; j = 1; k = size + 1; while (j < (size)) { aux01 = 2 * j; aux02 = k - 3; number[j] = aux01 + aux02; j = j + 1; k = k - 1; } return 0; } }