import java.util.*;
/*折中查找*/
class CollBinarySearch
{
public static void main(String[] args)
{
List<String> list=new ArrayList<String>();
list.add("addbbb");
list.add("addcbb");
list.add("cdddads");
list.add("baaadb");
sop(list);
Collections.sort(list);
sop(list);
int index=binarySearch(list,"cdddadsa");
sop(index);
}
public static int binarySearch(List<String> list,String key)
{
int min=0,max=list.size()-1,mid;
while(min<max)
{
//>>1就是/2
mid=(min+max)>>1;
//获取mid所对应的值,以便与key作比较
String str=list.get(mid);
//因为String本身具有比较性,所以直接用CompareTo方法
int num=key.compareTo(str);
if(num>0)
min=mid+1;
else if(num<0)
max=mid-1;
else
return mid;
}
return -min-1;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}