数据结构
数据结构 | 变种 |
---|---|
顺序线性表:向量Vector | |
单链表Singly Linked List | 1. 双向链表 Double Linked Lists2. 静态链表 Static List3. 对称矩阵 Symmetric Matrix4. 稀疏矩阵 Sparse Matrix |
哈希表Hash Table | 1. 散列函数 Hash Function2. 解决碰撞/填充因子 Collision Resolution |
栈和队列Stack & Queue | 1. 广义表 Generalized List/GList2. 双端队列 Deque |
队列Queue | 1. 链表实现 Linked List Implementation2. 循环数组实现 ArrayQueue3. 双端队列 Deque4. 优先队列 Priority Queue5. 循环队列 Circular Queue |
字符串String | 1. KMP 算法2. 有限状态自动机3. 模式匹配有限状态自动机4. BM 模式匹配算法5. BM-KMP 算法6. BF 算法 |
树Tree | 1. 二叉树 Binary Tree2. 并查集 Union-Find3. Huffman 树 |
数组实现的堆Heap | 1. 极大堆和极小堆 Max Heap and Min Heap2. 极大极小堆3. 双端堆 Deap4. d 叉堆 |
树实现的堆Heap | 1. 左堆 Leftist Tree/Leftist Heap2. 扁堆3. 二项式堆4. 斐波那契堆 Fibonacco Heap5. 配对堆 Pairing Heap |
查找Search | 1. 哈希表 Hash2. 跳跃表 Skip List3. 排序二叉树 Binary Sort Tree4. AVL 树5. B 树 / B+ 树 / B* 树6. AA 树7. 红黑树 Red Black Tree8. 排序二叉堆 Binary Heap9. Splay 树10. 双链树 Double Chained Tree11. Trie 树12. R 树 |
算法
算法 | 具体类型 | 相关题目 | 讲解文章 |
---|---|---|---|
排序算法 | 1. 冒泡排序2. 插入排序3. 选择排序4. 希尔 Shell 排序5. 快速排序6. 归并排序7. 堆排序8. 线性排序算法9. 自省排序10. 间接排序11. 计数排序12. 基数排序13. 桶排序14. 外部排序 - k 路归并败者树15. 外部排序 - 最佳归并树 | ||
递归与分治 | 1. 二分搜索/查找2. 大整数的乘法3. Strassen 矩阵乘法4. 棋盘覆盖5. 合并排序6. 快速排序7. 线性时间选择8. 最接近点对问题9. 循环赛日程表 | ||
动态规划 | 1. 矩阵连乘问题2. 最长公共子序列3. 最大子段和4. 凸多边形最优三角剖分5. 多边形游戏6. 图像压缩7. 电路布线8. 流水作业调度9. 0-1 背包问题/背包九讲10. 最优二叉搜索树11. 动态规划加速原理12. 树型 DP | ||
贪心 | 1. 活动安排问题2. 最优装载3. 哈夫曼编码4. 单源最短路径5. 最小生成树6. 多机调度问题 | ||
回溯法 | 1. 装载问题2. 批处理作业调度3. 符号三角形问题4. n 后问题5. 0-1 背包问题6. 最大团问题7. 图的 m 着色问题8. 旅行售货员问题9. 圆排列问题10. 电路板排列问题11. 连续邮资问题 | ||
搜索 | 1. 枚举2. DFS3. BFS4. 启发式搜索 | ||
随机化 | 1. 随机数2. 数值随机化算法3. Sherwood 舍伍德算法4. Las Vegas 拉斯维加斯算法5. Monte Carlo 蒙特卡罗算法 | 1. 计算 π 值2. 计算定积分3. 解非线性方程组4. 线性时间选择算法5. 跳跃表6. n 后问题7. 整数因子分解8. 主元素问题9. 素数测试 | |
图论 | 1. 遍历 DFS / BFS2. AOV / AOE 网络3. Kruskal 算法(最小生成树)4. Prim 算法(最小生成树)5. Boruvka 算法(最小生成树)6. Dijkstra 算法(单源最短路径)7. Bellman-Ford 算法(单源最短路径)8. SPFA 算法(单源最短路径)9. Floyd 算法(多源最短路径)10. Johnson 算法(多源最短路径)11. Fleury 算法(欧拉回路)12. Ford-Fulkerson 算法(最大网络流增广路)13. Edmonds-Karp 算法(最大网络流)14. Dinic 算法(最大网络流)15. 一般预流推进算法16. 最高标号预流推进 HLPP 算法17. Primal-Dual 原始对偶算法(最小费用流)18. Kosaraju 算法(有向图强连通分量)19. Tarjan 算法(有向图强连通分量)20. Gabow 算法(有向图强连通分量)21. 匈牙利算法(二分图匹配)22. Hopcroft-Karp 算法(二分图匹配)23. kuhn munkras 算法(二分图最佳匹配)24. Edmonds’ Blossom-Contraction 算法(一般图匹配) | 1. 图遍历2. 有向图和无向图的强弱连通性3. 割点/割边3. AOV 网络和拓扑排序4. AOE 网络和关键路径5. 最小代价生成树/次小生成树6. 最短路径问题/第 K 短路问题7. 最大网络流问题8. 最小费用流问题9. 图着色问题10. 差分约束系统11. 欧拉回路12. 中国邮递员问题13. 汉密尔顿回路14. 最佳边割集/最佳点割集/最小边割集/最小点割集/最小路径覆盖/最小点集覆盖15. 边覆盖集16. 二分图完美匹配和最大匹配问题17. 仙人掌图18. 弦图19. 稳定婚姻问题20. 最大团问题 | |
数论 | 1. 最大公约数2. 最小公倍数3. 分解质因数4. 素数判定5. 进制转换6. 高精度计算7. 整除问题8. 同余问题9. 欧拉函数10. 扩展欧几里得11. 置换群12. 母函数13. 离散变换14. 康托展开15. 矩阵16. 向量17. 线性方程组18. 线性规划 | ||
几何 | 1. 凸包 - Gift wrapping2. 凸包 - Graham scan3. 线段问题4. 多边形和多面体相关问题 | ||
NP 完全 | 1. 计算模型2. P 类与 NP 类问题3. NP 完全问题4. NP 完全问题的近似算法 | 1. 随机存取机 RAM2. 随机存取存储程序机 RASP3. 图灵机4. 非确定性图灵机5. P 类与 NP 类语言6. 多项式时间验证7. 多项式时间变换8. Cook定理9. 合取范式的可满足性问题 CNF-SAT10. 3 元合取范式的可满足性问题 3-SAT11. 团问题 CLIQUE12. 顶点覆盖问题 VERTEX-COVER13. 子集和问题 SUBSET-SUM14. 哈密顿回路问题 HAM-CYCLE15. 旅行售货员问题 TSP16. 顶点覆盖问题的近似算法17. 旅行售货员问题近似算法18. 具有三角不等式性质的旅行售货员问题19. 一般的旅行售货员问题20. 集合覆盖问题的近似算法21. 子集和问题的近似算法22. 子集和问题的指数时间算法23. 子集和问题的多项式时间近似格式 | |
位运算 | 位操作包括:1. 取反(NOT)2. 按位或(OR)3. 按位异或(XOR)4. 按位与(AND)5. 移位: 是一个二元运算符,用来将一个二进制数中的每一位全部都向一个方向移动指定位,溢出的部分将被舍弃,而空缺的部分填入一定的值。 | 1.数字范围按位与2.UTF-8 编码验证3.数字转换为十六进制数4.找出最长的超赞子字符串5.数组异或操作6.幂集7.位1的个数8.二进制表示中质数个计算置位9.子数组异或查询 | 力扣:位运算 |
———— | —————————————————————— | —————————————————————– | ——————– |
由于排版原因,不方便展示更新,因此通过语雀来更新算法或者数据结构
数据结构
算法数据结构是算法的基础,使用算法的时候不能忘记使用数据结构