扎实的基础知识:编程语言、数据结构和算法
数据结构 | 变种 | |
---|---|---|
顺序表 | 1. 双向链表 Double Linked Lists 2. 静态链表 Static List 3. 对称矩阵 Symmetric Matrix 4. 稀疏矩阵 Sparse Matrix |
|
单链表 Singly Linked List |
1. 散列函数 Hash Function 2. 解决碰撞/填充因子 Collision Resolution |
|
栈和队列 Stack & Queue |
1. 广义表 Generalized List/GList 2. 双端队列 Deque |
|
队列 Queue |
1. 链表实现 Linked List Implementation 2. 循环数组实现 ArrayQueue 3. 双端队列 Deque 4. 优先队列 Priority Queue 5. 循环队列 Circular Queue |
|
字符串 String |
1. KMP 算法 2. 有限状态自动机 3. 模式匹配有限状态自动机 4. BM 模式匹配算法 5. BM-KMP 算法 6. BF 算法 |
|
树 Tree |
1. 二叉树 Binary Tree 2. 并查集 Union-Find 3. Huffman 树 |
|
数组实现的堆 Heap |
1. 极大堆和极小堆 Max Heap and Min Heap 2. 极大极小堆 3. 双端堆 Deap 4. d 叉堆 |
|
树实现的堆 Heap |
1. 左堆 Leftist Tree/Leftist Heap 2. 扁堆 3. 二项式堆 4. 斐波那契堆 Fibonacco Heap 5. 配对堆 Pairing Heap |
|
查找 Search |
1. 哈希表 Hash 2. 跳跃表 Skip List 3. 排序二叉树 Binary Sort Tree 4. AVL 树 5. B 树 / B+ 树 / B* 树 6. AA 树 7. 红黑树 Red Black Tree 8. 排序二叉堆 Binary Heap 9. Splay 树 10. 双链树 Double Chained Tree 11. Trie 树 12. R 树 |
算法 | 类型 | 相关 |
---|---|---|
排序算法 | 1. 冒泡排序 2. 插入排序 3. 选择排序 4. 希尔 Shell 排序 5. 快速排序 6. 归并排序 7. 堆排序 8. 线性排序算法 9. 自省排序 10. 间接排序 11. 计数排序 12. 基数排序 13. 桶排序 14. 外部排序 - k 路归并败者树 15. 外部排序 - 最佳归并树 |
|
递归与分治 |
||
动态规划 | ||
贪心 | ||
回溯法 | ||
位运算 | ||
搜索 | 1. 枚举 2. DFS 3. BFS 4. 启发式搜索 |
|
随机化 | 1. 随机数 2. 数值随机化算法 3. Sherwood 舍伍德算法 4. Las Vegas 拉斯维加斯算法 5. Monte Carlo 蒙特卡罗算法 |
|
图论 | ||
数论 | ||
几何 | ||
NP 完全 |