主要内容
- 数据结构复杂度分析
学习目标
- 数据结构:数组、链表、栈、队列、散列表、⼆叉树、堆、跳表、图、Tire 树
- 算法: 递归、排序、⼆分查找、搜索、哈希算法、贪⼼算法、分治算法、回溯算法、动态规划、字符串匹配算法
主要心得
- 计算机的两个功能:存储 计算
- 数据结构与算法与程序运行息息相关,要想代码耐得住推敲,能满足更多更复杂的任务,减少 bug 提高性能,必须要了解底层数据的存储以及运算逻辑。因此数据结构与算法是程序员的内功。必须要重视,会议
常见复杂度量级
- 常量阶 1
- 对数阶 log n
- 线性阶 n
- 线性对数阶 nlog n
- 平方阶 n*n
- 立方阶 nnn
- 指数阶 2^n
- 阶乘阶 n!
其他内容
- 复杂度量级粗略地分为两类:多项式量级和⾮多项式量级;⾮多项式量级只有两个:O(2 )和 O(n!)。
复杂度的分析法则
- 单段看高频,比如循环
- 多段取最大,比如单循环,多重循环,复杂度取多循环
- 嵌套取乘积,比如递归,多重循环
- 多个规模求加法,比如方法有俩参数控制两个循环次数,比如 n+n,2n,取二者复杂度相加