假设我们有一个未排序的数组 A[],包含 n 个元素,我们想找到一个元素 X。

假设我们有一个无序数组 A[],包含 n 个元素,我们想找到一个元素 X。

如果 lo>hi,说明我们已经用尽了数组的搜索空间,返回-1。

如果 X=mid,我们发现目标元素返回 mid。

Java 为我们提供了一个现成的函数 Arrays.binarySearch(),这样我们就不用自己去实现这个函数了。它是一个非常简单易用且有效实现的方法,而且不容易出错。

就像我们实现的二叉搜索一样,它也要求对数组进行排序,否则结果是无法定义的。它使用二叉搜索算法对数组进行搜索,找到目标元素的索引。如果目标元素有多个出现,那么它可以返回其中任何一个元素的索引。

如果它找到了目标元素,那么就返回它的索引,否则就返回 beg - 1,其中 beg 是数组搜索空间的起始索引。否则,它返回 beg - 1,其中 beg 是数组搜索空间的起始索引。