本帖最后由 范龙波 于 2013-5-10 06:08 编辑
import java.util.*;
class binarysearchDemo
{
public static void main(String[] args)
{
halfSearchDemo();
}
public static int halfSearch(List<String> list,String key)
{
int max,min,mid;
max=list.size()-1;
min=0;
while(min<=max)
{
mid=(max+min)>>1;
String str=list.get(mid);
int x=str.compareTo(key);
if(x>0)
max=mid-1;
else if(x<0)
min=mid+1;
return mid;
}
return -min-1;
}
public static void halfSearchDemo()
{
List<String> list=new ArrayList<String>();
list.add("a");
list.add("bdx");
list.add("assf");
list.add("bsa");
list.add("ubds");
sop(list);
Collections.sort(list);
sop(list);
int in=halfSearch(list,"a");
sop(in); //每次打印这个in的时候怎么都是2啊
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
//编译没问题可是结果就是始终不变的2,帮忙找下问题出在哪里,谢谢。
|