
数据结构
文章平均质量分 92
初学者浅分享所学数据结构
南汐以墨
这个作者很懒,什么都没留下…
展开
-
B-树:解锁大数据存储和与快速存储的密码
这是因为,我们二叉树中,一个节点只保存了一个数据域,此时遇到非常大数据量的时候,导致树高变得很高,进行遍历查询树的时候,需要遍历树较深的地方,当然,查询的数据如若是在较浅树层,那么查询的时间还好,如若是非常深,那么此时查询的时间就会变得很耗时。那么此时就到了53这棵树这里,此时显然,54也是不在这里的,那么此时我们按照逻辑,还是得去子树再找,那么这里呢,没有子树了,所以导致我们寻找节点变为null了。这里值得注意的是,上述节点图例,是一般情况下的,为了后续插入操作简易进行,所以节点内部会进行修改。原创 2025-02-01 23:58:48 · 1081 阅读 · 0 评论 -
探索数据缓存——
Cache不像内存那样有很多空间,所以,当Cache的容量用完后,而又有新的内容需要添加进来的时候,就需要挑选并舍弃原有的部分内容,从而腾出空间放新的内容。LRU是LeastRecentlyUsed的缩写,译为最近最少使用的,所以合起来意思是最近最少使用的缓存,它是一种Cache替换算法。还有值得注意的是,如若我们放入的个数是大于了我们默认给定的初始值,那么就会删除头节点,然后再把新插入节点放入到尾节点去。链表的插入和删除的复杂度也是比较快的,也是O(1),这里指的是头尾操作噢~原创 2025-01-18 14:00:28 · 664 阅读 · 0 评论 -
探秘并查集——数据世界的“社交圈”
思路:核心是要修改合并两个元素对应位置的数据,例:合并0和1两棵树,那么此时0下标的数值绝对值要变大,1的父亲边成了0。在这之前,我们通过这个场景引入,可以了解到,其底层是一个数组构成的,那么初始化的时候,其编号下标值设置为-1。我们可以观察到,如若是树的孩子节点,那么此时,对应数组下标值是根节点的索引值。那么,到了出发去学校的日子,此时,三个地方组成三个小分队,即三个小集合。现在对这些人进行编号:0,1,2,3,4,5,,6,7,8,9。值得注意的的是,我们查询的是孩子节点,即是大于0的值。原创 2025-01-17 12:55:17 · 274 阅读 · 0 评论 -
高效查找的秘密武器二:布隆过滤器
布隆过滤器,是由布隆在1970年提出的一种紧凑型,比较巧妙的概率型数据结构,其特点就是高效的插入和查找,它可以告诉你一样东西一定不存在,或者可能存在,它是由多个哈希函数通过映射关系到位图中的,大大的节省了存储空间。注意add的时候,是六个哈希函数,那么对应的是六个比特位被设置了,所以检查的时候,也要加检查六个比特位是否都是1,但凡有一个不是,那么这个字符串是不存在的。在这个类里面呢,我们就要进行哈希函数的创建了,那么这个哈希函数呢,又得是不同哈希函数,可不敢一样的,一样的话,那就全部哈希到一个位置了。原创 2024-12-07 19:46:25 · 1026 阅读 · 0 评论 -
高效查找秘密武器一:位图
其实不然,电脑上不单单只是跑这个程序,后面还有很多,比如微信啊,爱奇艺什么的,所以一般来说,这么大容量放到16G的电脑内存是不太现实的。当前的i=0,因为我们输出的数字是5,在字节数组的0下标,当j从下标开始遍历,j=5时,就可以输出这个数字5了。那么此时此刻,我们再次细想一下,这些方法一般放在内存中进行的,那么40亿个不重复的无符号整数,有多大容量呢?比如,我们set方法,参数传入一个数字的话,如若数字给到的是<0的数字,那么此时是不符合我们位图的。适用于海量数据,整数,数据无重复的场景。原创 2024-12-06 20:13:38 · 643 阅读 · 0 评论 -
红与黑的秘密——红黑树
上次小编分享了AVL树那么这个AVL树呢,由于涉及到比较多的旋转,所以呢,一旦进行了对的树的修改操作就显得性能较为低下,所以AVL树呢,一般适合静态数据的查找。那么有没有一种既可以较为高效的查找,且也对树的结构进行操作,但并没有造成性能较为低下的数据结构呢?那么此时主角登场——红黑树那么红黑树是什么呢?这个红黑树也是一种二叉搜索树,但是呢,在每个节点上增添一个可以表示节点颜色的存储位,那么可以表示Red、Black,并满足一定的条件来保证树的平衡。原创 2024-11-29 09:01:47 · 679 阅读 · 0 评论 -
二叉搜索树进阶——AVL树
如若当前节点不为空,那么判断下当前的节点值和插入的节点值,当前的节点值大于插入的节点值,那么就往左边寻找,反之,就从右边寻找,如果等于,那就退出,不能插入相同的节点值。假设我们要插入的是18这个节点,那么插入之后,就要让18的父亲节点保存此时的parent,此时的parent是15这个节点。此时发现,我们图A定义的节点中,subR的平衡因子等于-1,parent的平衡因子等于0,subRL的平衡因子等于0。因为在25这个节点进行插入的时候,插入25左节点和右节点,其情况是不一样的,对应的就有两个图了。原创 2024-11-20 21:56:41 · 840 阅读 · 0 评论 -
Java集合探秘:Map和Set的魔法世界
我又来啦!今天来介绍下Map和Set这两个集合类,但也是属于数据结构的那么先来揭开这个Map和Set到底是何方神圣吧Map和Set是一种专门用来进行搜索的容器或者数据结构,其搜索效率与具体的实例化子类有关。这两个是用两种模型来进行查找的分别对应的是:Key-Value模型、纯Key模型。那么刚刚这两个又是什么呢?原创 2024-07-15 22:51:05 · 926 阅读 · 0 评论 -
二叉搜索树大冒险:寻找-插入-删除
OK,看我们题目就可知道啦,今天要分享学习的一种数据结构就是二叉搜索树。内容题目也说了三个大概的,分别是寻找、插入、删除。讲这个之前呢,那么就先讲讲这个二叉搜索树是何方神圣呢?原创 2024-07-13 22:40:57 · 897 阅读 · 0 评论 -
我与顺序表有个约会
今天来讲讲的数据结构初学中常见的一种——顺序表当然我们来讲讲什么是顺序表先。顺序表是属于线性表的一种。原创 2024-04-09 20:20:04 · 1867 阅读 · 3 评论 -
探秘二叉深林——浅解二叉树
最近我又学习了一种数据结构。这种数据结构还挺有趣的,名叫二叉树。在了解二叉树之前,我们得先了解这个叫树的数据结构。树:一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。具有以下特点:1.有一个特殊的结点,称为根结点,根结点没有前驱结点。原创 2024-05-03 23:15:03 · 830 阅读 · 0 评论 -
堆:让数据乖乖站好队
本章浅浅的介绍堆这个数据结构原创 2024-05-05 10:08:42 · 1662 阅读 · 3 评论 -
数据结构双子星:栈与队列
最近刚好学习了数据结构中的栈与队列,让我来浅浅谈下这两个有趣的东西吧。(基于java编写)首先我们得请出第一位明星:栈(Stack)那什么是栈呢?栈是一种后进先出的数据结构。具体来说呢,栈也是一种线性表来的,其只允许在固定一端进行插入和删除。进行数据插入和删除的一端叫栈顶,另一端叫栈底。同时有两个很常见操作:压栈:栈的插入操作叫做进栈/入栈/压栈,入数据在栈顶出栈:栈的删除操作叫做出栈。出数据在栈顶。接下来,让我们一起看看有什么方法吧。原创 2024-05-02 21:58:47 · 69 阅读 · 2 评论