Java集合详解6:TreeMap和红黑树 初识TreeMap 之前的文章讲解了两种Map,分别是HashMap与LinkedHashMap,它们保证了以O(1)的时间复杂度进行增、删、改、查,从存储角度考虑,这两种数据结构是非常优秀的。另外,LinkedHashMap还额外地保证了Map的遍历顺序 ...
分类:
编程语言 时间:
2019-02-08 19:49:56
阅读次数:
200
"题面" 题解 过年的假期里肯定要用硬核数据结构打发时间啊 所以我大胆尝试,用了一种速度不能算最快但是码量绝对是很大的一种方法 ~~居然控制在了6KB以内~~ 线段树套红黑树 ~~(逃~~ 这是一次前所未有的尝试 因为线段树套平衡树求区间第$k$小复杂度是$\mathrm{O}(\log^3n)$的 ...
分类:
其他好文 时间:
2019-02-07 23:27:55
阅读次数:
216
"题面" 题解 过年啦!!! 在这红红火火的日子里,肯定要写$\color{red}{\mathrm{Red}}\;\color{black}{\mathrm{Black}}\;tree$来愉悦身心啊 然鹅出现了一些小尴尬 虽然代码行数跟$\mathrm{s(p)lay}$没法比~~肯定是大括号太占 ...
分类:
其他好文 时间:
2019-02-06 15:49:57
阅读次数:
154
打表简化操作 如果不打表的话 要把十进制转化为十三进制要用到除法还要倒着出,还要读取判断是否是二位的十三进制的数 13 26的映射 第二位的映射只有一个字符 cin cout 的使用 scanf(%d%*c); endl; getline(); map是用红黑树实现的 map的迭代器要通过 it-> ...
分类:
其他好文 时间:
2019-02-04 10:25:38
阅读次数:
155
本文以jdk源码为线索学习几种数据类型实现机制。 【HashMap数据机制】 HashMap提供了key、value存储机制。HashMap是LinkedHashMap的基类,其内部维护一个Node数组用来存储数据: 为了解决hash冲突,每个节点存储链表或者红黑树。当链表长度小于阈值8时,使用链表 ...
分类:
其他好文 时间:
2019-02-01 23:28:16
阅读次数:
250
1.满二叉树 2.完全二叉树 3.二叉查找树 4.平衡二叉树 5.平衡查找树之 AVL树 6.平衡二叉树之 红黑树 7.B 树 8.B+ 树 9.B* 树 10.Trie 树 ...
分类:
其他好文 时间:
2019-01-31 13:17:23
阅读次数:
225
TreeSet 类概述 使用元素的自然顺序对元素进行排序 或者根据创建 set 时提供的 Comparator 进行排序 具体取决于使用的构造方法。 TreeSet 是如何保证元素的排序和唯一性的 底层数据结构是红黑树(红黑树是一种自平衡的二叉树) TreeSet 真正的比较是依赖于元素的 comp ...
分类:
其他好文 时间:
2019-01-31 13:07:24
阅读次数:
212
hashmap的构造方法: 总共有四个构造方法: 扩容方法每次都是2次方的形式扩容: hashmap的成员变量: 添加方法: 首先计算key在table中的位置,如果hash不重复,就在后面添加,就扩容,如果重复了,就在链表中添加,如果链表的长度超过了8,那么就会变成红黑树, 通过key值移除对象的 ...
分类:
其他好文 时间:
2019-01-30 15:54:04
阅读次数:
115
内容: 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 1、平衡二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、旋转 -- Rebalance 4、Java中红黑树的使用 ...
分类:
其他好文 时间:
2019-01-29 23:05:42
阅读次数:
150
B树是一种多路平衡查找树,它的每一个节点最多包含k个孩子,k被称为B树的阶。k的大小取决于磁盘页的大小。B树主要应用于文件系统以及部分数据库索引,比如著名的非关系型数据库MongoDB。一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/ ...
分类:
其他好文 时间:
2019-01-29 00:29:46
阅读次数:
191