
public class Demo
{

    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
    } 
}
