
基础算法模板
快速排序 归并排序 整数二分算法 浮点数二分算法 高精度加法 高精度减法 高精度乘低精度 高精度除以低精度 一维前缀和 二维前缀和 一维差分 二维差分 位运算 双指针算法 离散化 区间合并
快速排序 归并排序 整数二分算法 浮点数二分算法 高精度加法 高精度减法 高精度乘低精度 高精度除以低精度 一维前缀和 二维前缀和 一维差分 二维差分 位运算 双指针算法 离散化 区间合并
简述 归并排序思想,假设对数组A[p...r]排序: 分解 将数组A[p...r]平均划分为2子数组A[p...q-1]个A[q...r],一直划分直到每个子数组只有1个元素 归并 对 A[p...q-1]和A[q...r]这两个已排序好的数组进行合并 复杂度 时间复杂度 O(n...
单链表 双链表 栈 队列 循环队列 单调栈 单调队列 KMP Trie树 并查集 堆 一般哈希 字符串哈希 STL
简述 插入排序思想,假设对数组A[p...r]排序: 维持不变式:设当前排序的元素是 A[q],则保持A[p...q-1]为排好的,A[q]在A[p...q-1]中找到它的位置坐下 复杂度 O(n^2) 原地排序 实现
树与图的存储 树是一种特殊的图,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a->b, b->a。 因此我们可以只考虑有向图的存储。 树与图的遍历 拓扑排序 时间复杂度O(n+m),n表示点数,m表示边数 朴素dijkstra算法 时间复杂度O(n*n+...
简述 也叫折半查找,性能优异。 但是所查找的数列必须是有序序列。 复杂度 时间复杂度 log2(N) 实现 非递归实现 递归实现 插值查找 二分查找每次都会计算出一个mid,然后拿这个mid的值去做比较 $$ mid = \frac{(low+high)}{2} $$ $$ mi...
试除法判定质数 试除法分解质因数 朴素筛法求素数 线性筛法求素数 试除法求所有约数 约数个数和约数之和 欧几里得算法 求欧拉函数 筛法求欧拉函数 快速幂 扩展欧几里得算法 高斯消元 递归法求组合数 通过预处理逆元的方式求组合数 Lucas定理 分解质因数法求组合数 卡特兰数 NI...
简述 任何一个节点都有两个强引用指向左右子节点,以及一个弱引用指向它的父节点。节点还包括一个key成员保存数据内容。 实现
简述 从数据的第一个元素开始,依此比较,直到找到目标或者查找失败 复杂度 时间复杂度 N 实现 优化
时间复杂度 O(1) O(logn) O(n) O(nlogn) O(n^2) O(n^3) O(2^n) O(n!) O(n^n) $$ O(1) < O(log_n)<O(n)<O(nlog_n)<O(n^2)<O(n^3)<O(2^n)&...
搜索当前标签