/acplusplus

积累的算法代码库。

Primary LanguageC++

算法和数据结构代码库

  • TODO
    • LeetCode
    • LintCode
    • Code Hunt
    • hihoCoder
    • 算法
    • 数据结构与算法(C++描述)
    • 算法导论
    • 编程之美
    • 剑指Offer
    • 编程珠玑
    • 挑战程序设计竞赛
    • 算法竞赛入门经典(第2版)
    • 算法竞赛入门经典训练指南
    • 算法的乐趣
  • 字符串 Strings
    • 模式匹配
      • KMP算法
      • Rabin-Karp算法
      • Aho-Corasick自动机
      • 有限自动机
    • 扩展KMP
    • Trie字典树
    • 压缩Trie
    • 后缀树
    • 后缀数组
    • Manacher回文子串算法
    • 字符串哈希
  • 数据结构 Data Structures
    • 布隆过滤器
    • 并查集
    • 树状数组BIT
    • 环形缓冲区
    • 双向链表
    • 双端队列
    • 跳舞链Dancing Links
  • 图 Graph
    • 图的两种存储方式及其特点
    • 用DFS求连通块
    • 用BFS求最短路
    • 欧拉回路
    • 拓扑排序,图的序列化。
    • Dijkstra最短路径算法
    • Bellman-Ford最短路径算法
    • Floyd-Warshall最短路径算法
    • Kruskall最小生成树算法
    • Prim最小生成树算法
    • 稳定婚姻问题
    • 二分图最大匹配
    • 最短增广路算法
  • 树 Tree
    • 最近公共祖先LCA
    • Splay树
    • Treap
    • 红黑树,C++ STL的标准实现方式
    • 线段树
    • 划分树
    • AVL树
    • B+树
    • BSP树
    • K-D树
  • 动态规划 Dynamic Programming
    • 背包问题集锦
    • 最长不下降子序列
    • 最长公共子序列
    • 最大子矩阵
    • DAG上的动态规划
    • 多阶段决策问题
    • 线性结构上的动态规划
    • 树上的动态规划
    • 复杂状态的动态规划
  • 分治法 Divide and Conquer
    • 平面最近点对
    • 最大子数组问题,该题有线性算法。
    • 矩阵乘法的Strassen算法
  • 暴力求解 Brute-Force
    • 枚举排列
    • 子集生成
    • 八皇后问题
    • 路径查找问题
  • 排序 Sorting
    • BrustSort,大规模字符串排序
    • 链表MergeSort
    • 快速排序算法
    • 归并排序算法
    • 快速选择算法,第k大问题
  • 数学 Mathematics
    • 快速傅里叶变换FFT
    • 矩阵快速幂
    • 高精度计算,加减乘除
    • 进制转换
    • 母函数
    • 矩阵计算
    • 欧拉筛法
    • 最大公约数,最小公倍数,扩展欧几里得
    • 数论中的计数问题
    • 编码与解码
    • 离散概率
    • 线性规划
  • 搜索 Searching
    • 迭代加深搜索
    • 双向广度搜索
    • A* 算法
    • IDA* 算法
  • 计算几何 Computation Geometry
    • 凸包,二维/三维
    • 旋转卡壳算法
  • 控制 Control
    • PID
    • 卡尔曼滤波
  • 贪心 Greedy Method
    • 哈夫曼树
  • 智能算法 Intelligence
    • 蚁群算法
    • 遗传算法
    • 神经网络
    • 模拟退火
  • 博弈论 Game Theory
    • 极大极小博弈树,Minimax Algorithm