
数据结构
文章平均质量分 93
数据结构
big muscle
Java开发
展开
-
算法leetcode
1. 0-1背包;动态规划public int testPack(int[] weight, int[] value, int cap){ if(cap == 0 || weight.length == 0){ return 0; } int len = weight.length; int[][] f = new int[len][cap + 1];//cap+1因为给定容量为cap,因此j的循环必须到cap原创 2022-05-12 20:40:01 · 307 阅读 · 0 评论 -
检索
导读基础有序数组:随机访问性,插入慢链表:动态修改性,查找慢,o(n)优化:链表 --》二叉检索树 --》再优化(保持平衡)–》AVL树和红黑树跳表hash(数据和链表的组合),冲突多时,链表优化,jdk8是转为红黑树缺点:空间大,范围查找不好快速判断(判断是否存在)1.1 位图1.2 布隆过滤器(有多个hash函数)倒排索引...原创 2021-02-22 23:13:59 · 146 阅读 · 0 评论 -
数据结构和算法
数组容器能否完全替代数组:Java ArrayList无法存储基本类型,比如int、long,需要封装为Integer、Long类,而Autoboxing、Unboxing则有一定的性能消耗,所以如果特别关注性能,或者希望使用基本类型,就可以选用数组。数组要从0开始编号,而不是从1开始呢(减少一次计算)a[k]就表示偏移k个type_size的位置,所以计算a[k]的内存地址只需要用这个公式:a[k]_address =base_address + k * type_size但是,如.原创 2020-10-12 19:32:01 · 520 阅读 · 1 评论 -
学习各种树
二叉查找树平衡二叉树(AVL Tree)(深度差小于等于1)平衡多路查找树(B-Tree)B+Tree非叶子节点上只存储key值信息,这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度...原创 2020-04-18 11:39:14 · 264 阅读 · 0 评论 -
LSM树
磁盘扇区 和 磁道下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)柱面硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,原创 2020-06-18 10:38:18 · 200 阅读 · 0 评论 -
红黑树
红黑树红:红色节点不能连续黑:根节点为黑色,对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点原创 2020-04-10 14:41:29 · 128 阅读 · 0 评论