关于二进制搜索的问题

时间:2014-05-05 23:20:13

标签: java

试图解决这个问题

声明了一个数组 int [] iArray = {6,12,3,9}

Ran Binary搜索数字9

返回值为-2

有人可以向我解释原因吗?

在运行二进制搜索之前,是否必须对数组进行排序才能获得所需的结果? 我很困惑lol

2 个答案:

答案 0 :(得分:2)

你得到-2,因为你要找的9将在列表的第一个和第二个索引之间。这就是它将被插入的位置(在6到9之间它被分类)。

{http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#binarySearch%28int[],%20int%29}

答案 1 :(得分:0)

是的,二进制搜索仅适用于已排序的数据。无法解释为什么-2 tho。