数据结构:
线性表
- 数组
场景:适合长度不变,有固定序号,不需要频繁增、减 - 链表
场景:适合需要频繁增、减
散列表
- 哈希表
场景:每一个值都有哈希函数与其对应,方便查找
树
-
二叉树
每一个节点有两个子节点 -
B树
m个节点有m个子节点 -
完全二叉树/不完全二叉树
完全二叉树:二叉树最后一层填满,从左到右没有间隔
不完全二叉树:二叉树最后一层不填满,从左到有间隔
图
略
算法
时间/空间复杂度
排序
- 冒泡排序
- 快速排序
- 堆排序
查找
- 二分查找
贪心算法
贪心算法就像在吃零食时,每次选择当前最好吃的零食,不考虑以后会不会后悔。
回溯算法
回溯就像在迷宫中探索路径。你尝试走一条路,如果发现这条路行不通,就退回去尝试其他路径。
分治算法
分治就像在处理大任务时,将其分解成多个小任务,然后分别解决这些小任务,最后再合并结果。
动态规划
像拼图游戏,解决每一小块(子问题),然后将小块组合成整体,爬楼梯就是用的动态规划。
字符串
图
- 深度优先
- 广度优先