Source of 18.13.java


  1: private static <T extends Comparable<? super T>>
  2:         boolean binarySearch(T[] anArray, int first, int last, T desiredItem)
  3: {
  4:    boolean found;
  5:    int mid = first + (last - first) / 2;
  6:       
  7:    if (first > last)
  8:       found = false;
  9:    else if (desiredItem.equals(list[mid]))
 10:       found = true;
 11:    else if (desiredItem.compareTo(list[mid]) < 0)
 12:       found = binarySearch(anArray, first, mid - 1, desiredItem);
 13:    else
 14:       found = binarySearch(anArray, mid + 1, last, desiredItem);
 15: 
 16:    return found;
 17: } // end binarySearch
 18: 
 19: public static <T extends Comparable<? super T>> boolean inArray(T anEntry)
 20: {
 21:    return binarySearch(anArray, 0, anArray.length - 1, anEntry);
 22: } // end inArray
 23: // Version 4.0