# 数据结构与算法

# 数据结构

  • 一维:
    • 基础数据结构:数组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

# 算法

  1. 基础算法

    • 跳转语句(branch):If-else, switch
    • 循环迭代(iteration): for,while loop
    • 递归Recursion(Divide & Conquer, Backtrace)

    任何高级的算法都是由基础算法实现,算法的根本就是找到重复单元,基于重复单元便可以泛化成高级算法。

  2. 高级算法

    • 搜索 Search: 深度优先搜索 Depth first search,广度优先搜索 Breadth first search, 启发式搜索A* 等
    • 动态规划 Dynamic Programming
    • 二分查找 Binary Search
    • 贪心 Greedy
    • 数学 Math, 几何 Geometry