为什么在Java中使用binarySearch方法时,该方法内的数组形参需要是有序的
2个回答
展开全部
binarySearch方法是根据二分法查找指定的元素,反而该指定元素的下标索引
这里就不得不提一下二分法的执行步骤:
先找到中间位置的元素
如果需要查找的元素比中间位置的元素小,就抛弃右边一半的元素,往左边找,然后重复第一步
如果需要查找的元素比中间位置的元素大,就抛弃左边一半的元素,往左边找,然后重复第一步
现在是否明白为什么binarySearch方法的形参必须是有序的了呢?
因为如果不是有序的 那么该方法查找的结果根本是没有意义的
此外,该方法还有两个小细节:
传进去当做参数的数组必须是升序排列
如果该数组中有3个元素是相同的 而你要查找的正好是该元素,那么该方法的返回值是该3个元素的下标索引中的任意一个,这也算是该方法的一个bug
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询