java - 关于二分查找的问题

标签 java

尝试解决这个问题

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

对数字 9 进行二分查找

返回值为-2

谁能给我解释一下为什么吗?

在运行二分查找之前是否必须对数组进行排序才能获得所需的结果? 我很困惑哈哈

最佳答案

您得到 -2,因为您要查找的 9 将位于列表的第一个和第二个索引之间。这就是它被插入的位置(如果已排序,则在 6 到 9 之间)。

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

关于java - 关于二分查找的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483493/

相关文章:

java - 如何正确插入排序?

java - java.time.ZonedDateTime 使用什么 MySQL 类型

java - OpenGL:正交投影

java - 在spring-batch中动态配置Job

java - GWT 编辑器 - 如何基于 Collection 添加 N 个相同类型的子编辑器

java - 如何使用扩展类中的字段创建 HQL 查询

java - 无法使用 Guice 和 Vertx 将同一实例注入(inject)多个 Verticles

java - 是否可以将 ProcessBuilder 的输出重定向到多个文件?

java - 在另一个项目中包含gradle 'war'项目

PHP 数组 POST 数据的 Java 等价物