java中数组的binarySearch()方法详解
记录下躺在床上收到女朋友发来的java问题惊坐起查了5分钟的资料的收获。咳咳,回到正题。首先,binarySearch方法为二分法查找,所以数组必须是有序的或者是用sort()方法排序之后的。 binarySearch(Object[], Object key)方法的object[]参数是要查找的数组,key参数为要查找的key值。方法的返回值有几种:1.找到的情况下...
记录下躺在床上收到女朋友发来的java问题惊坐起查了5分钟的资料的收获。
咳咳,回到正题。
首先,binarySearch方法为二分法查找,所以数组必须是有序的或者是用sort()方法排序之后的。
binarySearch(Object[], Object key)
方法的object[]参数是要查找的数组,key参数为要查找的key值。
方法的返回值有几种:
1.找到的情况下:如果key在数组中,则返回搜索值的索引。
2.找不到的情况下:
[1] 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
[2] 搜索值是数组元素,从0开始计数,得搜索值的索引值;
[3] 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
[4] 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。
int a[] = new int[] {1, 3, 4, 6, 8, 9};
int x1 = Arrays.binarySearch(a, 5);
int x2 = Arrays.binarySearch(a, 4);
int x3 = Arrays.binarySearch(a, 0);
int x4 = Arrays.binarySearch(a, 10);
int a[] = new int[] {1, 3, 4, 6, 8, 9};
int x1 = Arrays.binarySearch(a, 5);
int x2 = Arrays.binarySearch(a, 4);
int x3 = Arrays.binarySearch(a, 0);
int x4 = Arrays.binarySearch(a, 10);
结果为:x1=-4 x2=2 x3=-1 x4=-7
binarySearch(Object[], int fromIndex, int toIndex, Object key)
方法的object[]参数为要查找的数组,fromindex参数为开始索引(包括),toindex为结束索引(不包括),两个参数之间为查找的范围。key为要查找的key。
方法的返回值有几种:
1.找到的情况下:如果key在数组中,则返回搜索值的索引。
2.找不到的情况下:
[1] 该搜索键在范围内,但不是数组元素,由1开始计数,得“ - 插入点索引值”;
[2] 该搜索键在范围内,且是数组元素,由0开始计数,得搜索值的索引值;
[3] 该搜索键不在范围内,且小于范围(数组)内元素,返回–(fromIndex + 1);
[4] 该搜索键不在范围内,且大于范围(数组)内元素,返回 –(toIndex + 1)。
int a[] = new int[] {1, 3, 4, 6, 8, 9};
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, 4, 10);
int a[] = new int[] {1, 3, 4, 6, 8, 9};
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, 4, 10);
结果为 x1=-4 x2=2 x3=-2 x4=-5
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)