算法的时间复杂度分析:
我们主要关注的是核心操作的次数和输入规模关联起来。
执行次数 = 执行时间
常见的大O阶
1、线性阶
2、平方阶
3、常数阶
4、对数阶
复杂度从低到高
时间复杂度到底是多少?
案例一:
案例二:
案例三:
最坏情况:
算法的空间复杂度分析
java 中常见的内存占用
计算机访问内存的形式都是一次一个字节
一个引用(机器地址) 需要8个字节来表示
4.创建一个对象,比如new Date(),除了Date对象内部存储的数据(例如年月日等信息)占用的内存,该对象本身也有内存开销,每个对象的自身开销是16个字节,用来保存对象的头信息。
6、java中数组被被限定为对象,他们一般都会因为记录长度而需要额外的内存,一个原始数据类型的数组一般需要24字节的头信息(16个自己的对象开销,4字节用于保存长度以及4个填充字节)再加上保存值所需的内存。
算法的空间复杂度
例子1: