public static String binaryFind(String target, String[] list)
  {
    int start = 0;
    int end = list.length - 1;
    int checkpoint = 0;

    while (start <= end)
    { //While there are more to search
      // find the middle
      checkpoint = (int)((start+end)/2.0);
      System.out.println("Checking at: "+
       checkpoint+" start="+start+" end="+end);
      if (target.compareTo(list[checkpoint]) == 0)
      {
        return "Found it!";
      }
      else if (target.compareTo(list[checkpoint]) > 0)
      {
        start=checkpoint + 1;
      }
      else if (target.compareTo(list[checkpoint]) < 0)
      {
        end=checkpoint - 1;
      }
    }
    return "Not found";
  }