# 数据结构与算法
# 数据结构
- 一维:
- 基础数据结构:数组array (string), 链表 linked list
- 高级数据结构:栈stack, 队列queue, 双端队列deque,集合set, 映射map(hash或map) 等
- 二维:
- 基础:树tree, 图graph
- 高级:二叉搜索树binary search tree(red-black tree,VAL) 堆heap,并查集disjoint set,字典树Trie等
- 特殊数据结构:
- 位运算Bitwise, 布隆过滤器BloomFilter
- LRU Cache
# 算法
基础算法
- 跳转语句(branch):If-else, switch
- 循环迭代(iteration): for,while loop
- 递归Recursion(Divide & Conquer, Backtrace)
任何高级的算法都是由基础算法实现,算法的根本就是找到重复单元,基于重复单元便可以泛化成高级算法。
高级算法
- 搜索 Search: 深度优先搜索 Depth first search,广度优先搜索 Breadth first search, 启发式搜索A* 等
- 动态规划 Dynamic Programming
- 二分查找 Binary Search
- 贪心 Greedy
- 数学 Math, 几何 Geometry