已有101人关注
java从入门到精通112底-113页是否错误
发表在Java图书答疑 2016-07-07
是否精华
版块置顶:
    书中元素8应在[u]25[/u]的前面,因此插入点应是元素25的索引值2,所以index的值是[u]-2[/u],这两处是不是应为10  -1?
分享到:
精彩评论 1
静心_mrkj
学分:0 LV1
2016-07-08
沙发
没有错误!
使用binarySearch(object[ ], int fromIndex, int endIndex, object key);时,在查询前需要用sort()方法将数组排序。
先看这个,文字代码结合看,尤其是第4条(结合“int x4 = Arrays.binarySearch(a, 1, 3, 10);”):
binarySearch(object[ ], int fromIndex, int endIndex, object key);
如果要搜索的元素key在指定的范围内,则返回搜索键的索引;否则返回-1或者"-"(插入点)。(注:"-"(插入点)表示负数,要连起来读,别拆开)
1.该搜索键在范围内,但不在数组中,由1开始计数;
2.该搜索键在范围内,且在数组中,由0开始计数;
3.该搜索键不在范围内,且小于范围内元素,由1开始计数;
4.该搜索键不在范围内,且大于范围内元素,返回-(endIndex + 1);(特列)
例如:
import java.util.Arrays;
public class IntFunction
{
public static void main (String []args)
{
int a[] = new int[] {1, 3, 4, 6, 8, 9};// 数组中的元素已经被升序排列,故无需再次使用sort()方法将数组排序。
int x1 = Arrays.binarySearch(a, 1, 4, 5);
int x2 = Arrays.binarySearch(a, 1, 4, 4);
int x3 = Arrays.binarySearch(a, 1, 4, 2);
int x4 = Arrays.binarySearch(a, 1, 3, 10);
System.out.println("x1:" + x1 + ", x2:" + x2);
System.out.println("x3:" + x3 + ", x4:" + x4);
}
}
/*输出结果:
x1:-4, x2:2
x3:-2, x4:-4
*/
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照