首页
归档
分类
标签
瞬间
友链
关于
Rainsheep
一条没有梦想的咸鱼
累计撰写
395
篇文章
累计创建
89
个分类
累计创建
383
个标签
导航
首页
归档
分类
标签
瞬间
友链
关于
目录
分类
算法
红黑树
参考: 面试问你红黑树,可以这样回答 红黑树详解,对插入旋转独到理解 红黑树变色和旋转,图文案例讲解 红黑树简介及左旋、右旋、变色 1. 红黑树简介 1.1 为什么要使用红黑树 红黑树是一种自平衡的二叉查找树。 对于二叉查找树,容易出现严重单边长的情况,会
2023-05-24 16:04
256
0
0
49.6℃
树
AVL 树
参考:AVL 树 1. 什么是 AVL 树 AVL 树,自平衡二叉查找树,名字来源于作者首字母大写。 在 AVL 树中,任一节点对应的两颗子树最大高度差为1,因此,AVL 树也称为高度平衡树。查找、删除、插入平均、最坏复杂度都是O(log n),增加和删除元素的操作可能触发一次或多次树旋转。 2.
2023-05-23 23:44
248
0
0
48.8℃
树
Manacher 算法
参考文档: 最长回文子串 解题思路2:Manacher算法 1. 介绍 Manacher(又称"马拉车")算法通过对字符串预处理的方式求出最长回文子串, 算法时间复杂度为 O(n) 第一步: 添加分隔符
2023-03-22 16:40
290
0
0
53.0℃
字符串
堆
参考文献: 【浅学Java数据结构】 优先级队列以及堆的创建、插入、删除 【数据结构】【堆】堆的建立、插入和删除 1. 堆的概念 如果有一个关键码的集合 K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足:Ki <= K2i+1 且
2023-03-03 14:11
220
0
0
46.0℃
堆
B+ 树和 B- 树
参考文档: 漫画:什么是B-树? 漫画:什么是B+树? 1. B- 树 B- 树念 B 树,不念 B 减树 1.1 数据库索引为什么不使用二叉查找树? 其实从算法逻辑上来讲,二叉查找树查找速度和比较次数都是最小的。但是,我们不得不考虑一个现实问题:磁盘 IO。 数据库索引是存储在磁盘上的,当数据量比
2022-06-20 19:16
265
0
0
50.5℃
树
跳跃表
参考文档:什么是跳跃表? 1. 什么是跳跃表 跳跃表(Skip List)是一种基于有序链表的扩展,简称跳表。 其实就是使用关键节点作为索引的一种结构。 怎样能更快查找到一个有序链表的某一节点呢? 可以利用类似索引的思想,提取出链表中的部分关键节点 比如: 给定一个长度是 7 的有序链表,节点值依次
2022-04-18 16:20
42
0
0
28.2℃
链表
快速排序
参考文献: 快速排序算法
2022-04-10 18:30
62
0
1
32.2℃
排序
差分数组
参考文献:什么是差分数组? 背景 如果给你一个包含5000万个元素的数组,然后会有频繁区间修改操作,那什么是频繁的区间修改操作呢?比如让第1个数到第1000万个数每个数都加上1,而且这种操作时频繁的。 此时你应该怎么做?很容易想到的是,从第1个数开始遍历,一直遍历到第1000万个数,然后每个数都加上
2022-02-25 17:18
31
0
0
27.1℃
数组
基数排序
基数排序 时间复杂度 O(kn),k 为要排序的数字的最大长度 例如对 342、58、576、356 进行排序 不足的位数看做是 0 342 058 576 356 第一步 按照个位将数字依次放到不同的位置 0: 1: 2: 342 3: 4: 5: 6: 576, 356 7: 8:
2020-11-26 10:54
30
0
0
27.0℃
排序
全排列permutation问题
参考链接: 字符串全排列算法学习 思路: 一位一位来固定,求后面的全排列,设当前为k位,则让[k,n]位的字符都与第k位进行交换,并且需要保证第k位不重复(代码中用set来实现),然后对于每种情况,递归第k+1位即可。具体过程如下图: 递归的出口,就是只剩一个字符的时候。 代码如下: import
2020-02-02 00:15
30
0
0
27.0℃
递归
上一页
下一页
1
2
3
弹