对比下用哈希表和红黑树的set
来源:互联网 发布:mac升级系统卡住 编辑:程序博客网 时间:2024/06/05 22:45
首先set,不像map那样是key-value对,它的key与value是相同的。关于set有两种说法,第一个是STL中的set,用的是红黑树;第二个是hash_set,底层用得是hash table。红黑树与hash table最大的不同是,红黑树是有序结构,而hash table不是。但不是说set就不能用hash,如果只是判断set中的元素是否存在,那么hash显然更合适,因为set 的访问操作时间复杂度是log(N)的,而使用hash底层实现的hash_set是近似O(1)的。然而,set应该更加被强调理解为“集合”,而集合所涉及的操作并、交、差等,即STL提供的如交集set_intersection()、并集set_union()、差集set_difference()和对称差集set_symmetric_difference(),都需要进行大量的比较工作,那么使用底层是有序结构的红黑树就十分恰当了,这也是其相对hash结构的优势所在。
0 0
- 对比下用哈希表和红黑树的set
- List,Set,Map 的对比
- C#和JAVA GET,SET对比
- map、set和unordered_map、unordered_set对比
- 对比SET
- 哈希表和红黑树的对比
- 哈希表和红黑树的对比
- Python中dict与set的对比
- Set和Set<?>的区别
- Collection集合的总结以及如果选择适合的集合(包括对List和Set的对比)
- Collection接口和Set接口对比与解析。
- 红黑树和AVL树的效率对比
- 数据结构-AVL树和红黑树的对比
- List、Set、Map对比
- Java中的容器类List、Set、Map的对比
- list tuple dict set的对比(挖坑)
- 查询set、dict、dict.keys()的速度对比
- c++的multimap(set)和unordered_map(set)
- 使用Javascript D3创建属于你的涂鸦作品
- Linux 与 BSD 有什么不同?
- leetcode:String to Integer (atoi)
- POJ-1015(离散化DP)
- 从今天起开始学习intel汇编(四) 整数算术指令
- 对比下用哈希表和红黑树的set
- 就是不想看书
- 后台进程一:DBWR进程
- SuperDao DB 数据库超类
- 怎样做到参加会议“到有所获”?
- java 反射
- Qt常用方法总结
- 数据库JDBC 增删改查
- 业务逻辑详解