Source of 19.13.java


  1: // @author Frank M. Carrano, Timothy M. Henry
  2: // @version 5.0
  3: private static <T extends Comparable<? super T>>
  4:         boolean binarySearch(T[] anArray, int first, int last, T desiredItem)
  5: {
  6:    boolean found;
  7:    int mid = first + (last - first) / 2;
  8:       
  9:    if (first > last)
 10:       found = false;
 11:    else if (desiredItem.equals(anArray[mid]))
 12:       found = true;
 13:    else if (desiredItem.compareTo(anArray[mid]) < 0)
 14:       found = binarySearch(anArray, first, mid - 1, desiredItem);
 15:    else
 16:       found = binarySearch(anArray, mid + 1, last, desiredItem);

 18:    return found;
 19: } // end binarySearch

 21: public static <T extends Comparable<? super T>> boolean inArray(T anEntry)
 22: {
 23:    return binarySearch(anArray, 0, anArray.length - 1, anEntry);
 24: } // end inArray