黑马程序员技术交流社区
标题:
binarySearch的返回插入位置
[打印本页]
作者:
歌诗王道
时间:
2014-4-13 22:07
标题:
binarySearch的返回插入位置
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 num = str.compareTo(key);
if(num>0)
max = mid - 1;
else if(num<0)
min = mid + 1;
else
return mid;
}
return -min-1;
}
复制代码
以上代码是模拟写的一个collections中的binarySearch方,最后返回的是插入位置的负数再减一。二分法在遍历到最后一个元素时不是mid,max,min三个变量指向一个元素吗,返回的插入位置能为max或者mid吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2