001 基础
- 多块代码合在一起,只看最高复杂度的运算
- 时间复杂度
- 常数次数,1,2,3---,时间复杂度都是O(1)
- n,2n,3n---,常数*n次,时间复杂度都是O(n)
- 常见递归算法时间复杂度
- 二分查找 时间复杂度是 O(logn)
- 二叉树遍历 时间复杂度是 O(n)
- 排序查找 时间复杂度是 O(n)
- 快排,归并排序 时间复杂度是 O(nlogn)
002 数组及链表
数组
- 数组是内存里连续的一段存储区域.通过数组下标可以随机的访问任意一个元素.
- 访问任意数组元素的时间复杂度是O(1)
- 为了保证数组元素在内存中的连续性,插入和删除数组元素,时间复杂度是O(n)
链表
- 单链表
- 双链表
- 插入和删除的时间复杂度是O(1)
- 查找的时间复杂度是O(n),因为必须从链表头部遍历查找