
public class StringBinarySearch
{
    public static void main(String[] args)
    {
        String[] myList = {"abe", "becky", "clair", "henry", "norm", "sam"};
        int r;
        
        r = binarySearch(myList, "becky");
        System.out.println("r = " + r);
    }

    public static int binarySearch(String[] list, String key) 
    {
        int low  = 0;
        int high = list.length - 1;

        while ( low <= high ) 
        {
            int mid = (low + high) / 2;

            if (key.compareTo(list[mid]) == 0)  
                return mid;
            else if (key.compareTo(list[mid]) < 0)
                high = mid - 1;
            else
                low = mid + 1;
        }

        return -1; // Not found
    } 
}
