Вычисление временной сложности вызова метода в вызове метода

74
5

http://imgur.com/a/efinr

Поэтому мне было поручено создавать методы в java, которые выполняют базовые операции (добавление, вычитание и умножение) с помощью HugeIntegers (которые представляют собой массивы, которые содержат цифры в своих индексах, например 1111 будет [1,1,1,1]).,

После написания нашего кода нам предлагается проанализировать временную сложность (т.е. Классы сложности большой тета), и у меня есть немного проблем с анализом части моего кода (см. Ссылку).

Я знаю, что x1.add(diff) даст мне большую тету (n), где n - число цифр HugeInteger, а compareTo (x2) также даст мне большую тету (n). Содержимое внутри цикла while также является большой тета (n). Теперь, суммарная временная сложность этого куска кода большой тета (n ^ 3) или будет n ^ 2? У меня возникают проблемы с условием цикла while, так как я не уверен, что n следует добавлять или умножать. Я знаю, что любой этот результат будет умножен на n внутри цикла while.

Любая помощь очень, очень ценится. Я занимаюсь этим в течение большей части недели.

спросил(а) 2020-03-25T21:18:01+03:00 2 месяца назад
1
Решение
118

Условие цикла будет выполняться по одному на каждую итерацию цикла. Содержимое цикла также будет запускаться один раз для каждой итерации цикла. Поэтому вы можете добавить их. Затем, разумеется, умножьте количество циклов цикла. Если условие (n) и тело цикла (n), то вместе они все еще (n). Если цикл работает (n) раз, то сумма равна (n ^ 2).

ответил(а) 2020-03-25T21:33:07.613081+03:00 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема