数据结构和算法
文章平均质量分 86
姜浩高
这个作者很懒,什么都没留下…
展开
-
最详细的KMP算法讲解
只要你学过数据结构与算法分析,相信你对KMP算法应该都不陌生吧?如果你没听过,不要紧,今天我们就来聊一聊这个算法。建议最好拿一张草稿纸,然后边看边理解,这样更有助于你对它的理解,更能理解它背后的精髓所在,相信你在理解完该算法之后,一定会大喊一声:妙啊!KMP算法的诞生KMP算法是三位大牛:Knuth、Morris和Pratt同时发现的,于是取了他们名字的首字母然后组合起来,就成了该算...原创 2020-04-07 18:17:54 · 1008 阅读 · 2 评论 -
什么是差分数组?
问题背景如果给你一个包含5000万个元素的数组,然后会有频繁区间修改操作,那什么是频繁的区间修改操作呢?比如让第1个数到第1000万个数每个数都加上1,而且这种操作时频繁的。此时你应该怎么做?很容易想到的是,从第1个数开始遍历,一直遍历到第1000万个数,然后每个数都加上1,如果这种操作很频繁的话,那这种暴力的方法在一些实时的系统中可能就拉跨了。因此,今天的主角就出现了——差分数组。...原创 2020-04-06 22:11:15 · 17288 阅读 · 33 评论 -
傻子都能看懂的并查集算法
一、定义其实并查集顾名思义就是有“合并集合(Union)”和“查找两个元素是否在同一集合(isSameSet)”两种操作的关于数据结构的一种算法。举个例子。如下图有a、b、c、d、e五个元素,每个元素处于自己的集合中,比如a元素所在的集合只有a这么一个元素,其他也类似。然后我们定义每个元素的父亲指针指向自己,如下图所示。二、并查集的合并操作(Union方法)例如,我们...原创 2020-03-27 23:18:37 · 397 阅读 · 0 评论 -
硬核总结!真二叉树、满二叉树、完全二叉树的性质与概念
树形结构这是我们最熟悉的线性结构,线性结构的数据简单来说就是一条线,串起来一个个的节点。那树形结构是怎样的呢?很明显,顾名思义,它是一棵树的样子。将这棵树进行180度大翻转,就成了数据结构中的树形结构了可以初步看出,二叉树就是每个节点要么没有分枝,要么就是分两根枝,而多叉树的每个节点可以有任意的分枝。生活中的树形结构文件夹的管理就是我们生活中最常见的树形结构...原创 2020-01-05 12:19:50 · 28223 阅读 · 10 评论 -
什么是布隆过滤器?
1.问题引入考虑这样的一个场景,假设某公司的黑名单中有100亿个URL链接,每个URL链接大小是64个字节,问:当给定某个URL,判断它是否在该公司的URL黑名单中。2.Hash表能否解决该问题?问题一给出,我们就很容易想到一个方法,用Hash表去解决该问题,这个思路确实也是可以的,我们可以把这些属于黑名单的URL通过hash函数映射到hash表中。这样,每当给定一个新...原创 2019-05-02 09:50:34 · 546 阅读 · 0 评论