java - 哈希表是否适合实现手机的地址簿功能

标签 java data-structures

我在阅读时发现了这个问题,我不知道它的正确答案是什么..这是问题:

假设您正在为手机实现地址簿功能。地址 书籍需要按照人的姓氏排序,并支持快速访问 按姓氏查询。以下哪种数据结构是不错的选择 用于存储地址簿?解释为什么。哪个是错误的选择,为什么?

(a) 未排序的链表

(b) 排序链表

(c) 二叉搜索树

(d) 哈希表

我的答案是使用哈希表,因为它有键和值...... 我的答案正确吗?

谢谢

最佳答案

根据要求,使用的正确结构是二叉搜索树。 为什么?

(a) 未排序链表:未排序,O(n) 搜索

(b) 排序链表:已排序,O(n) 搜索;请注意,您不能对单链表或双链表应用二分搜索

(c) 二叉搜索树:排序,O(logn) 搜索

(d) 哈希表:未排序,O(1) 搜索

由于排序要求,

(a)(d) 被排除;那么搜索时(c)(b)更快。

*刚刚注意到你还问了“错误的选择”,这显然是(a)(未排序的链接列表)

关于java - 哈希表是否适合实现手机的地址簿功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34601345/

相关文章:

java - 获取子文件夹的名称 - Perforce Java API

java - 我可以使用什么库在 Java Applet 中对视频进行编码?

java - 在 osx 下的独立 Java 应用程序中使用 log4j 2.0 时,日期变量未在 log4j2.xml 中解析

java - 为什么 JCombobox 不是 AbstractButton 的子类?

algorithm - 如何有效地找到数字属于哪个范围?

c - 如何在 C 中创建自己的数据类型,如 int、long?

algorithm - 存储树和图的数据?

java - 如何使用 mockito 测试 REST 服务?

c++ - 二叉搜索树中的删除函数

Ruby - 在深度嵌套的 Hash 中有效地存储数据?