常见的数据结构
线性数据结构:数组、链表、栈、队列
树
参考:知乎文章关于树的简单介绍
图
堆
算法
排序和查找算法
时间复杂度和空间复杂度
使用大O符号表示法,它并不是用于来真实代表算法的执行时间的,它是用来表示代码执行时间的增长变化趋势。所以要区分变量是那些,它的增长趋势是怎么样的。
要用数学思维理解坐标轴
常见的时间复杂度量级有:
- 常数阶O(1)
- 对数阶O(logN)
- 线性阶O(n)
- 线性对数阶O(nlogN)
- 平方阶O(n²)
- 立方阶O(n³)
- K次方阶O(n^k)
- 指数阶(2^n)
参考知乎文章:算法的时间与空间复杂度
最核心的是理解各种查找排序算法的思想。在理解思想的基础上才是编码,面试如果非笔试的话一般只会问一下你思想。