随笔分类 - 数据结构
摘要:List有序,顺序是插入的顺序;Set无序指的是打乱了插入的顺序;HashSet底层是HashMap是真正的无序;TreeSet有序,但这个顺序是根据排序规则排序的。
阅读全文
摘要:插入、删除功能实现 /* * 使用单链表;每次插入大约需要比较N/2次; * 插入效率是O(N),删除表头元素效率是O(1) */ public class MySortQueue { // 使用单链表实现 private Entry root; private static class Entry
阅读全文
摘要:堆 优先级队列是一种抽象数据结构(ADT)。优先级队列可以用数组实现,删除最大或最小值的效率是O(1),但插入数据的效率是O(N)。堆是优先级队列的另一种实现 椎的效率 堆是一种树,插入删除都是O(logN),不支持查询 堆的特点 1、完全二叉树,即每一层从左到右都是满的。2、常用数组实现。使用数组
阅读全文
摘要:抽象数据类型 列表、栈、队列 实现数据结构 是否重复有序 不同的链表 单链表、双端链表、双端双向链表 LinkedList、ArrayList 大小固定,有下标 插入删除,效率都是O(N) add、remove、contains、indexof ArrayList、Vector 默认容量 10 默认
阅读全文
摘要:概念 数据结构解决数据怎么存放,不同的数据结构插入、查询的速度不一样算法操作数据结构里的数据,有插入、查找、删除、迭代、排序等操作 常识 length返回的是数组的容量,size返回的是元素个数 旧框架 Vector、Stack、HashTable都兼容于类集框架 List List的实现类:Arr
阅读全文
摘要:Collections 是一个操作 Set、List 和 Map 等集合的工具类。 Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。 Collections 类中提供了多个 synchronizedXx
阅读全文
摘要:ConcurrentHashMap 是一个 Segment 数组,Segment 通过继承 ReentrantLock 来进行加锁,所以每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 Segment 是线程安全的,也就实现了全局的线程安全。
阅读全文
摘要:LinkedHashMap既是一个HashMap,也是一个链表
阅读全文
摘要:HashSet源码分析——HashSet由哈希表实现
阅读全文
摘要:Hashtable也采用的链地址法 Dictionary类 Hashtable的get/put方法是从字典来的,虽然它也实现了Map接口,Map接口也有get/put方法
阅读全文
摘要:哈希表 使用哈希函数确定下标以插入数据的数组叫哈希表 哈希化 通过哈希函数把一个数字从大的范围转化为小范围的数字叫哈希化 把关键字转化为数组下标 1、关键字不需要转换,比如员工编号从0到1000,关键字员工编号可以直接做为数组下标 2、关键字需要转换,把一部英文字典装入哈希表,a是1,b是2,c是3
阅读全文
摘要:索引 索引是由关键字-块号码对组成的按关键字排序的列表或树 使用索引 使用有序的索引连接文件记录 文件里的记录按照任意顺序排列,比如可以按插入时间排序 优点 索引比文件中所有记录小得多,甚至可以完全放在内存里,这样当数据库程序启动后就把索引读到内存中来;对于数据库来说,索引文件使用B+树保存 查询快
阅读全文
摘要:B-树 用来在外部存储中组织数据。 严格来说,2-3树、2-3-4树都是B-树的特例;但B树更强调它的节点有很多个子节点,B-树中的节点可以有几十或几百个子节点。 B-树也可以是查找树,也可以不是查找树,这里涉及的都是查找树。 5阶的B-树指这个树的非叶节点最多可以有5个子节点。 B-树应用于硬盘
阅读全文
摘要:硬盘存储速度 1、内存,使用电子方式工作,几微秒(一秒的百万分之一)就可以访问一个字节。 2、外存 数据在磁盘的圆形磁道上排列,磁盘的磁道类似老式的留声机轨道。 (1)、读写头移动到正确的磁道,这个机械运动需要几毫秒(一秒的千分之一)。 (2)、读写头等待磁盘旋转到正确的位置,即使磁盘每分钟旋转10
阅读全文
摘要:2-3树 2-3树在历史上很重要,并且在很多应用程序中还在使用。 2-3树和2-3-4树 和2-3-4树相比,除了子节点数不一样外,其它的都完全一样。 插入 在查找插入位置的过程中不理会遇到的节点是不是满的,顺着树找到要插入的叶节点,如果叶节点不满,就插入新值。 分裂节点 如果叶节点满了,分裂叶节点
阅读全文
摘要:多叉树 非叶节点的子节点可以多于两个 2-3-4树 2-3-4树的非叶节点可能含有两个、三个或四个子节点,所以叫2-3-4树;2-3-4树的非叶节点最多可以有4个子节点,所以又叫4叉树。有两个子节点的节点叫2-节点,有三个子节点的节点叫3-节点,有四个子节点的节点叫4-节点。 对非叶节点来说,节点有
阅读全文
摘要:红黑树 红黑树是特殊的二叉搜索树,它解决了二叉树的非平衡问题。 红黑树的平衡性 第一个图根节点的右子树的高度为2,左子树的高度为4;第二个图根节点的右子树的高度为3,左子树的高度为6;上面两个图是一个正确的红黑树——红黑树保证子树的高度差不超过两倍。 红黑树的层数最多是2*log2(N+1) 红黑规
阅读全文

浙公网安备 33010602011771号