Когда я изучаю структуры данных, я пытаюсь реализовать динамический массив c в Java, используя массив stati c, и пытаюсь вычислить временные сложности для каждого метода.
Для метода удаления, который принимает элемент в качестве параметра, мой код содержит инструкцию 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--;
}
}