首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
ducktobey
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
52-串(Sequence)
在本章节内容中研究的串是开发中熟悉的字符串,大家都知道,字符串是由若干个字符组成的有限序列。 可以看出,前缀与真前缀的区别,后缀与真后缀的区别在于前缀/后缀可以是自己,真前缀/真后缀不可以是自己。 通过一个模式串,在文本中查找位置,如果找到,则返回对应的索引,如果找不到,返回-…
51-B+树
由于B+树的非叶子节点,只用来存储key,所以当B+树节点与B树节点为同样大小的节点的话,B+树可以存储更多的key,因为一个key相对于一个节点具体数据来讲,占用的空间会更少,所以可以存储更多的key,这样,可以利用key快速找到对应的节点。
50-跳表(Skip List)
首先来思考一个问题。 搜索必须要从表头节点开始,依次往后搜索,直到搜索到为止。所以链表搜索的时间复杂度为O(n) 答案是不能,因为链表没有像数组一样的高效随机访问(O(1)时间复杂度),所以不能像有序数组一样,直接进行二分搜索优化, 只能从头开始,或者从尾开始依次搜索,直到找到…
49-布隆过滤器(Bloom Filter)
布隆过滤器(Bloom Filter)就可以办到这一点。 虽然布隆过滤器存在一定的误判率,但是误判率依然可以通过代码进行控制,所以结合业务需求来进行调整。一般在如下情况下可以考虑使用布隆过滤器 所以实际开发中,误判率是结合业务来确定的,因此误判率可以认为是一个已知的值。并且数据…
48-动态规划(Dynamic Programming)
由于掘金提示有违规信息,因此内容无法显示,所以请读者移步值简书阅读,谢谢!动态规划(DynamicProgramming)
47-分治(Divide And Conquer)
分治,也就是分而治之。它的一般步骤如下 所以,通过上面介绍的步骤,可以知道,分治策略非常使用于递归,因为前面在将原问题分解为若干个子问题时,子问题的结构与原问题是一样的,只是规模不一样,所以,很容易想到,这可以利用递归来进行解决。 例如,前面在介绍冒泡排序,选择排序,插入排序时…
46-贪心(Greedy)
这些算法,在前面文章中也有介绍,为什么说这些算法都使用到了贪心策略呢?通过阅读完本章节内容,就会明白为什么这些算法使用到了贪心策略。 结合上面的情景,可以理解出:每一都应该选择重量最小的古董,因为一旦选择的重量最小的古董,则海盗船剩下的载重量就会更大,就可以装载更多的古董。所以…
45-回溯(Back Tracking)
每一步都选择一条路出发,能进则进,不能进则退回上一步(回溯),换一条路再试。 所以,树,图的深度优先搜索(DFS)就是典型的回溯应用。[下图] 所以,很容易看出来,回溯非常适合使用递归。 在 8 * 8的国际象棋上摆放八个皇后,使其不能相互共计:任意两个皇后都不能处于同一行,同…
44-尾调用(Tail Call)
一个函数的最后一个动作是调用函数的话,就成为是尾调用。例如下面的代码 如果最后一个动作是调用自身,称为尾递归(Tail Recursion),是尾调用的特殊情况。例如下面的代码 一些编译器能对尾调用进行优化,以达到节省真空间的目的。 不过,在这个过程当中,有很多技术细节。例如 …
43-递归(Recursion)
递归:函数(方法)直接或者间接调用自身。是一种常用的编程技巧 例如下列的函数,计算1 + 2 + 3 + ... + n的和。 在函数内部,直接调用函数自身,这就属于递归。 但是在一般开发中,常见的递归还是直接调用自身的这种情况。 说到递归,其实生活中也有递归的现象存在。例如 …
下一页
个人成就
文章被点赞
21
文章被阅读
32,300
掘力值
995
关注了
0
关注者
10
收藏集
1
关注标签
2
加入于
2019-08-23