package sort;

public class Search {

  public static int linearSearch(Comparable[] list, Comparable val) {
    for (int i = 0; i < list.length; i++) {
      if (list[i].compareTo(val) == 0) {
        return i;
      }
    }
    return -1;
  }

  public static int binarySearch(
      Comparable [] list, Comparable value) {
    int low = 0;
    int high = list.length - 1;
    while (low <= high) {
      int mid = (low + high) / 2;
      if (list[mid].compareTo(value) == 0) {
        return mid;
      }
      else if (list[mid].compareTo(value) < 0) {
        low = mid + 1;
      }
      else {
        high = mid - 1;
      }
    }
    return -1;
  }

}
