В настоящее время я изучаю курс «Введение в Java» и готовлюсь к среднесрочному обучению. Я столкнулся с этой проблемой:
public void wug() {
int j = 0;
for (int i = 0; i < N; i += 1) {
for (; j < M; j += 1) {
if (bump(i, j))
break;
}
}
}
N и M тривиальны и указаны где-то еще.
В решении указано время выполнения if theta (M + N) для худшего случая и theta (N) для лучшего случая. Я понимаю лучший случай, но я думал, что худший случай - тета (N * M). Может ли кто-нибудь объяснить, почему наихудший случай - это тета (M + N)? Я действительно сомневаюсь в сложности алгоритма. Спасибо!