java - 返回对象而不是索引的二进制搜索的实现?

标签 java time-complexity binary-search

那么是否可以编写一个返回对象而不是索引的二分查找实现呢?我需要它,所以整个任务在 O(logn) 时间内完成,而不是在我得到索引后调用 collection.get() 花费更多时间,这样复杂性就变成了 O (nlogn).

最佳答案

二进制搜索需要一个随机访问容器。如果您知道索引,您应该能够在 O(1) 中找到该项目。如果不是这种情况,那么二分查找首先就是错误的算法。

在这种情况下,您使用的是 ArrayList,它是数组的包装器,确实提供了高效的随机访问。

关于java - 返回对象而不是索引的二进制搜索的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33641322/

相关文章:

java - DatagramChannel 发送线路上丢失

java - 查找 Long(在列表中)是否适合 Long 值列表

java - 制作二分查找函数

java - 在具有内存限制的未排序输入中查找缺失的数字

java - 插入查询 - executeUpdate 返回 -1

java - 使用 Postgres 8.2 时出现错误 : operator does not exist: integer = character varying,

java - 如何使用 CsvFileSource 在 Junit 5 参数化测试中转义双引号

python - 根据我的代码确定时间复杂度并进行一些修改

swift - Swift 为其标准库实现了什么排序算法?

search - 二分搜索 - 最坏/平均情况