
数据结构与算法
文章平均质量分 54
生活需要深度
这个作者很懒,什么都没留下…
展开
-
Linux circ_buf详解
【代码】Linux circ_buf详解。原创 2024-04-23 16:34:59 · 274 阅读 · 0 评论 -
hashmap
在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成(原创 2023-10-12 09:46:58 · 98 阅读 · 0 评论 -
算法的时间与空间复杂度(精细+举例)
我们继续看上面的例子,假设每行代码的执行时间都是一样的,我们用 1颗粒时间 来表示,那么这个例子的第一行耗时是1个颗粒时间,第三行的执行时间是 n个颗粒时间,第四行的执行时间也是 n个颗粒时间(第二行和第五行是符号,暂时忽略),那么总时间就是 1颗粒时间 + n颗粒时间 + n颗粒时间 ,即 (1+2n)个颗粒时间,即: T(n) = (1+2n)*颗粒时间,从这个结果可以看出,这个算法的耗时是随着n的变化而变化,因此,我们可以简化的将这个算法的时间复杂度表示为:T(n) = O(n)原创 2023-03-17 17:07:57 · 257 阅读 · 0 评论 -
B+树 - linux内核
【代码】B+树 - linux内核。原创 2022-12-16 14:55:33 · 644 阅读 · 0 评论 -
哈希散列表hlist_head - linux内核经典实例
hlist_head和hlist_node在内核中的普通双向链表基本上都是通过list_head很好理解,但是hlist_head和hlist_node为何要这样设计呢?先看下hlist_head和hlist_nodehash_table为散列表(数组),其中的元素类型为。以hlist_head为链表头的链表,其中的节点hash值是相同的(也叫冲突)。first指针指向链表中的节点①,然后节点①的pprev指针指向hlist_head中的first,节点①的next指针指向节点②。以此类推。原创 2022-11-23 10:07:09 · 1319 阅读 · 0 评论 -
线性表概念
线性表 基本概念原创 2022-07-13 14:24:51 · 427 阅读 · 0 评论 -
字符串匹配算法
字符串匹配算法原创 2022-07-13 10:50:08 · 7452 阅读 · 0 评论 -
散列表 - 解析与C++实现
第99篇 C++数据结构(九)散列表1.散列表简介1.1.散列函数1.2.散列冲突解决方案2.数据节点3.实现3.1.变量3.2.方法4.测试4.1.测试代码4.2.输出结果5.实现代码6.总结详细介绍:大佬文章链接1大佬文章链接21.散列表简介散列表也叫哈希表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。1.原创 2022-07-08 09:32:54 · 1915 阅读 · 1 评论 -
高频算法总结
常见算法考题原创 2022-07-07 19:53:11 · 183 阅读 · 0 评论 -
算法四大思路
递归与动态规划的不同递归与动态规划是两个十分基本的算法,它们使用的思路都是分而治之(将一个大问题拆解成一个小问题),我在刚开始学算法时,也是不明白这两者有什么不同,在经过这么久的学习后,我也是对此有了自己的理解(如有不对,欢迎指正)。下面便是我觉得,递归和动态规划的2个不同:1.递归是从上而下(从大问题到小问题),而动态规划是由下而上(先解决小问题最后到大问题);2.动态规划会储存每个小问题的结果,从而它的计算速度会比递归要快。(代价是动态规划的空间复杂度更高,即用空间换取的时间)。现在大家可能还不是原创 2022-07-07 19:34:08 · 783 阅读 · 0 评论 -
二叉树,平衡二叉树,红黑树,b树,b+树,b*树的缺点与优点以及使用场景
1、二叉查找树的缺点二叉查找树,相信大家都接触过,二叉查找树的特点就是左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大,如图基于二叉查找树的这种特点,我们在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 个节点的二叉查找树,正常的情况下,查找的时间复杂度为 O(logn)。之所以说是正常情况下,是因为二叉查找树有可能出现一种极端的情况,例如这种情况也是满足二叉查找树的条件,然而,此时的二叉查找树已经近似退化为一条链表,这样的二叉查找树的查找时间复杂度顿时变成了 O(原创 2022-07-07 17:44:52 · 1927 阅读 · 0 评论 -
数学归纳与递归
递归与算法原创 2022-07-06 11:07:50 · 141 阅读 · 0 评论 -
伸展树(一) - 图文解析与C语言实现
本章介绍伸展树。它和"二叉查找树"和"AVL树"一样,都是特殊的二叉树。在了解了"二叉查找树"和"AVL树"之后,学习伸展树是一件相当容易的事情。和以往一样,本文会先对伸展树的理论知识进行简单介绍,然后给出C语言的实现。后序再分别给出C++和Java版本的实现;这3种实现方式的原理都一样,选择其中之一进行了解即可。若文章有错误或不足的地方,希望您能不吝指出!目录1. 伸展树的介绍2. 伸展树的C实现3. 伸展树的C测试程序转载请注明出处:伸展树(一)之 图文解析 和 C语言的实现 - 如果天空不死 -原创 2022-07-07 17:45:49 · 515 阅读 · 0 评论 -
体会设计细节
设计细节原创 2022-07-06 11:07:36 · 92 阅读 · 0 评论 -
从数学到算法
数学到算法原创 2022-07-06 11:07:24 · 139 阅读 · 0 评论 -
如何算法化解题
算法化解题原创 2022-07-06 11:07:04 · 91 阅读 · 0 评论 -
区间 - 左闭右开
区间原创 2022-07-05 09:29:57 · 1206 阅读 · 0 评论 -
循环不变式
微积分基本原理是小单元划分求解逼近最终数值,实际的算法编写过程都是通过这种不断递进的方式来趋近最终的解决方案(局部左右解)。也就是我们可以认为微积分和计算机算法求解原理是一致的,通过无限的趋近来证明或者求解最终问题。说道求解,那物理规律的描述一般是自然规律的一个总结,是人类长期总结经验结果。对于一个复杂问题的计算机解决一般需要一个物理原理公式的描述和微积分求解过程。微积分求解过程必然涉及初始条件、终止判定和循环不变式三个重要的核心问题。...原创 2022-07-04 17:29:07 · 112 阅读 · 0 评论 -
从数数开始
数数运算原创 2022-07-04 13:56:53 · 111 阅读 · 0 评论 -
重编号排头算法基于高度函数的精巧求解
重编号排头算法 基于高度函数的精巧求解原创 2022-07-05 09:16:19 · 84 阅读 · 0 评论 -
最大二部匹配以及推入—重编号算法最大流的应用与求解最大流的局部方法。
最大二部匹配以及推入—重编号算法 最大流的应用与求解最大流的局部方法。原创 2022-07-05 09:16:09 · 78 阅读 · 0 评论 -
Edmonds–Karp算法 - 基于BFS给出高效算法
Edmonds–Karp算法 基于BFS给出高效算法原创 2022-07-05 09:15:40 · 150 阅读 · 0 评论 -
最大流最小割 - 算法的理论保证
最大流最小割 算法的理论保证原创 2022-07-05 09:15:12 · 84 阅读 · 0 评论 -
最大流 - 基础知识
最大流 基础知识原创 2022-07-05 09:14:58 · 83 阅读 · 0 评论 -
Bellman-Ford-Moore基于队列的算法实现
Bellman-Ford-Moore 基于队列的算法实现原创 2022-07-05 09:14:49 · 160 阅读 · 0 评论 -
强联通分量
图论基本知识,联通子图,G的子图C中任意定点两次DFS求解问题原创 2022-07-05 09:14:14 · 74 阅读 · 0 评论 -
不相交集
处理不相交集的问题,合并-查找,合并两个不相交的集合,查找某个元素在哪个集合里面原创 2022-07-05 09:13:08 · 95 阅读 · 0 评论 -
总量分析 核算方法和势方法 - 分摊分析
抽象过程对某个内容可能多次操作形成一个序列,我们需要知道这个序列中耗费时间的具体点在哪里,这样方便我们后期优化原创 2022-07-04 17:38:52 · 152 阅读 · 0 评论 -
拟阵与贪心算法
不是所有的贪心都可以通过拟阵解决,但是这个是解决部分贪心的一个重要的方法。原创 2022-07-04 17:38:40 · 191 阅读 · 0 评论 -
Huffman编码 - 贪心算法
贪心算法原创 2022-07-04 17:38:23 · 213 阅读 · 0 评论 -
贪心算法
贪心算法活动选择贪心策略精要原创 2022-07-04 17:38:10 · 137 阅读 · 0 评论 -
最长公共子序列 - 动态规划
基因序列的求解原创 2022-07-04 17:37:49 · 66 阅读 · 0 评论 -
矩阵链乘 - 动态规划实例
A1,A2...An乘积,括号次序关键原创 2022-07-04 17:37:40 · 105 阅读 · 0 评论 -
动态规划
动态规划与分治差别分治算法问题特点,泾渭分明,分而治之。动态规划,不同问题之间存在较大的关联性问题。解决优化问题优化问题,问题解以值表现,要找最大/最小值 ==> 最优最优解有多个,只需要找对一个即可......原创 2022-07-04 17:37:27 · 87 阅读 · 0 评论 -
增强数据结构
大部分用到的复杂的内容数据结构优先级队列原创 2022-07-04 17:37:08 · 170 阅读 · 0 评论 -
跳跃表原理与实现
有序链表,加速查找,cache原创 2022-07-03 18:36:03 · 407 阅读 · 0 评论 -
空页等待后续补充
字典:放入,查找,删除符号表:键->值 编译器: 变量名->存储地址原创 2022-07-03 18:30:07 · 84 阅读 · 0 评论 -
中位数与次序统计量
R阶次序统计量 你个元素中第K小的元素中位数取低作为中位数的值最为整数除法原创 2022-07-03 18:26:54 · 185 阅读 · 0 评论 -
线性时间排序
归并和快速排序都是nlogn时间复杂度线性时间排序基于比较的排序算法下界证明原创 2022-07-03 18:19:01 · 92 阅读 · 0 评论 -
概率分析与随机算法
雇佣问题:随机化算法,实际使用的随机化算法过程并不一定是随机的,随机数生成器具体需要专业的内容解决。原创 2022-07-03 18:13:23 · 90 阅读 · 0 评论