[CareerCup] 13.2 Compare Hash Table and STL Map 比较哈希表和Map
2015-10-30 05:20
260 查看
13.2 Compare and contrast a hash table and an STL map. How is a hash table implemented? If the number of inputs is small, which data structure options can be used instead of a hash table?
这道题让我们比较哈希表和STL中的map数据结构,在遇到这道题之前,我一直以为map就是c++中的哈希表呢,原来是不同的啊--!!!
哈希表是通过一个链表数组来实现的,链表中的每个节点包含了关键值key和数值value。数据不是有序存储的,是通过一个哈希函数来计算将要存进的位置index,查找或插入数据的时间复杂度是常数级的O(1),这简直碉堡了。在哈希表中,我们要解决潜在的冲突问题,即两组数据要存进同一个位置,我们可以用链表来将相同位置的数据链起立,铁索连环啊~
而Map是通过在二叉树中基于键值key插入键值/数值对来实现的,无需处理冲突。
对于输入数据比较小的情况,我们也可以用Map或者是二叉树来实现,虽然时间复杂度是O(lgn),但是由于输入数据小,其实也没啥太大差别。
这道题让我们比较哈希表和STL中的map数据结构,在遇到这道题之前,我一直以为map就是c++中的哈希表呢,原来是不同的啊--!!!
哈希表是通过一个链表数组来实现的,链表中的每个节点包含了关键值key和数值value。数据不是有序存储的,是通过一个哈希函数来计算将要存进的位置index,查找或插入数据的时间复杂度是常数级的O(1),这简直碉堡了。在哈希表中,我们要解决潜在的冲突问题,即两组数据要存进同一个位置,我们可以用链表来将相同位置的数据链起立,铁索连环啊~
而Map是通过在二叉树中基于键值key插入键值/数值对来实现的,无需处理冲突。
对于输入数据比较小的情况,我们也可以用Map或者是二叉树来实现,虽然时间复杂度是O(lgn),但是由于输入数据小,其实也没啥太大差别。
相关文章推荐
- 范例解析:学习Android的IPC主板模式
- 范例解析:学习Android的IPC主板模式
- 夺命雷公狗jquery---50获取div元素并且通过each方法遍历
- [C++] Abstract Factory Pattern 实作
- 21款酷炫的数据可视化工具
- 33款可用来抓数据的开源爬虫软件工具
- Snap.svg – 现代 Web 开发必备的 JavaScript SVG 库
- Mybatis 逆向工程
- Design Pattern/ OOD/ System Design
- js封装用户选项传递给Servlet之考试系统二
- 夺命雷公狗jquery---49单选,反选,全不选实战数据库信息
- JavaScript-----单击刷新图片验证码
- JavaScript-----图片加载失败则加载默认图片
- JavaScript-----JS实现静态页面传参
- windows程序设计中的HEXCALC.c 程序的一些难点指导
- JavaScript-----JS操作Cookie
- sharesdk 短信验证码
- 程序功能的设计
- Direct2D 1.1 开发笔记 特效篇(五) 径向模糊
- Java 网络编程 中的 服务器与客户端的 连接!