【发布时间】:2018-06-07 20:52:10
【问题描述】:
我正在尝试在我的应用程序中实现二进制搜索。 我正在创建一种方法来遍历用户的联系人列表,将数字添加到数组中,对其进行排序,然后使用二进制搜索来定位数字等。
但我在想我应该使用什么样的数组,然后对它进行排序,然后实现二进制搜索。 或者有没有办法存储数据?比如集合、地图等?
场景 - 我将从他们的手机中获取用户联系人。当然,每个数字都需要存储在数组或列表中(以更好的为准)。 然后对该数组进行排序。 现在我想使用二进制搜索来搜索一个数字。由于用户可以拥有大量的联系人集,我认为这将是一个好方法
【问题讨论】:
-
如果你必须运行二分搜索,那么你需要一个支持排序的集合。因此,您的选择几乎仅限于
List类型。 -
为什么需要二分查找?请举例说明您要执行的搜索。
-
答案取决于您要运行哪些操作以及要优化什么(时间复杂度、空间复杂度)。因此,请说明您要运行哪些查询、如何添加项目以及优化什么。 “大型数据集”究竟有多大。
-
我已经编辑了我的描述。希望这会有所帮助!
-
如果您只是想按号码搜索联系人,从时间复杂度的角度来看,
HashMap联系人号码将是更好的选择。
标签: java