一、算法分析
1.1算法的时间复杂度分析
1.1.1函数渐近增长
1.1.2算法时间复杂度
1.1.2.1大O记法
1.1.2.2常见的大O阶
- 线性阶
- 平方阶
- 立方阶
- 对数阶
- 常数阶
1.1.2.3函数调用的时间复杂度分析
1.1.2.4最坏情况
1.2算法空间复杂度分析
1.2.1java中常见的内存占用
- 基本数据类型内存占用
- 计算机访问内存的方式都是一次一个字节
- 一个引用需要8个字节
- 创建一个对象,比如new Date(),除了Date对象内部存储的数据(例如年月日等信息)占用的内存,该对象本身也 有内存开销,每个对象的自身开销是16个字节,用来保存对象的头信息。
- 一般内存的使用,如果不够8个字节,都会被自动填充为8字节
- java中数组被被限定为对象,他们一般都会因为记录长度而需要额外的内存,一个原始数据类型的数组一般需要24字节的头信息(16个自己的对象开销,4字节用于保存长度以及4个填充字节)再加上保存值所需的内存。