分析动态数组的时间复杂度
时间复杂度分析
平均情况下只需要挪动大概1/2的元素,所以平均复杂度为O(n/2)
//从数组中删除index位置的元素,返回删除的元素
public E remove(int index){
if(index < 0 || index >= size){
throw new IllegalArgumentException("remove failed. Index is illegal");
}
for(int i = index + 1; i < size; i ++){
data[i - 1] = data[i];
}
size --;
// data[size] = null;//loitering objects != memory leak内存泄漏
if(size == data.length / 2)
resize(data.length / 2);
return data[index];
}
更改为
if(size == data.length / 4 && data.length / 2 != 0)
resize(data.length / 2);
return data[index];