B树和B+树总结 B树 简介 这里的B树,也就是英文中的B-Tree,一个 m 阶的B树满足以下条件: 每个结点至多拥有m棵子树; 根结点至少拥有两颗子树(存在子树的情况下),根结点至少有一个关 ...
B树和B+树总结 B树 简介 这里的B树,也就是英文中的B-Tree,一个 m 阶的B树满足以下条件: 每个结点至多拥有m棵子树; 根结点至少拥有两颗子树(存在子树的情况下),根结点至少有一个关 ...
前言 根据分类,图的搜索分类可以分为 BFS和DFS 记忆化搜索(基于深搜) 双向广搜 二分状态搜索 启发式搜索 与或树搜索 博弈树搜索(α-β剪枝)(极大极小过程搜 ...
树状数组的原理和实现 概念 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树;它的查询和修改的时间复杂度都是log(n),空间复杂度则为 ...
树链剖分原理和实现.md html {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror-scro ...
前言 有时候,当你并不了解很多高级算法的时候,搜索不失为一种解决问题的好方法,而且很多高级算法有或多或少的会用到搜索或者搜索的思想。可见,搜索是一个基础并且必须要掌握的算法。 在这篇文章中,会对B ...
简介 当一棵二叉树的每个结点都大于它的两个子结点时,被称为堆有序; 如果我们用指针来表示堆有序的二叉树,那么每个元素都需要三个指针来找到它的上下结点;但是如果我们使用完全二叉树,只用数组而不需要指 ...
跳跃表原理和实现 前提 有时候会被问到链表如果做到二分搜索,可能会有部分的人会去把链表中的值保存到数组来进行二分,但是如果知道跳跃表的话,那么这个数据结构就可以解决这个困惑,它允 ...
本篇将附上扩展欧几里得算法的思想与推导; 对于一个方程\(a*x+b*y=gcd(a,b)\)来说,我们可以做如下的推导: 设有\(a*x_1+b*y_1=gcd(a,b)\); 同时我们有 ...
来源 在没有BM算法时,其原始算法是从后往前进行匹配,需要两层循环,判断以某个字符为结尾的子串是否和模式串相等,这种算法也称作暴搜; 贴上代码: 算法的思想还是比较容易理解的,i和j分别指的 ...
贪心算法的原理和实现 1 基本思想 从问题的某一个初始解出发,通过一系列的贪心选择-当前状态下的局部最优选择,逐步逼近给定的目标; 在每个阶段,都作出一个按照()某个评价函数最优的决策,这个评价 ...