标签:基本 常见 朋友 推出 单位 数据规模 知识 平均情况 cpu
课前复习:时间复杂度是o(log(n))
n 1000 1000 000 10亿
o(n) 1000 1000 000 10亿
o(log(n)) 10 20 30
常见的时间复杂度o(1) o(log(n)) 0(n) o(n*log(n)) o(n^2)
空间复杂度:
o(f(n)) 在输入n规模下的情况下,算法需要的最大的空间情况
1‘开辟数组
2.画调用栈
考虑 数组容量(array.length)和已有数据个数(size)的关系
1.容量是够用的size<array.length
2.容量不够用
搬家(1.5、2倍)
int newCapacity=array.length*2;
1.找新家;
int[] newArray=new int[newCapacity]
2.搬家
for(int i=0;i<size;i++){
newArray[i]=array[i];
}
3.发朋友圈
this.array=newArray;
4.老房子退掉
原来的数组对象,没有引用指向,变成垃圾
扩容的空间越小,空间的浪费越小
扩容的空间越大,需要扩容的频率越小
经验值1.5或者2倍
标签:基本 常见 朋友 推出 单位 数据规模 知识 平均情况 cpu
原文地址:https://blog.51cto.com/14232658/2422821