【发布时间】:2020-04-28 01:31:14
【问题描述】:
在学习数据结构时,我尝试使用静态数组在 Java 中实现动态数组,并尝试计算每种方法的时间复杂度。
对于以元素为参数的 remove 方法,我的代码包含一个 if 语句来检查是否在数组中找到给定的元素。只有当元素存在时,它才会执行删除操作。 我正在努力寻找这种方法的时间复杂度。是 O(n) 吗?谁能解释一下?
public boolean remove(int ele) {
for (int i = 0; i < numberOfElements; i++) {
if (arr[i] == ele) {
removeAt(i);
return true;
}
}
return false;
}
public void removeAt(int index) {
if (index > numberOfElements) {
throw new IllegalArgumentException();
} else {
for (int i = index; i < numberOfElements - 1; i++) {
arr[i] = arr[i + 1];
}
numberOfElements--;
}
}
【问题讨论】:
标签: data-structures time-complexity dynamic-arrays array-algorithms