Мне сложно определить время выполнения каждого шага в алгоритме. Я просто не могу понять логику.Невозможно понять время выполнения в алгоритме
Мы все знаем до определения Big O или Theta в алгоритме, мы должны вычислить время выполнения каждого шага, затем вычисляем порядок, основанный на времени выполнения.
Мне легче рассчитать порядок, чем Big O или Theta, но моя проблема заключается в вычислении времени выполнения.
Пример:
for i=0 to **n**
dothisStep
Время выполнения этого является: (п + 1), что делает его порядок O (N) - это легкий один, и я понял why-- моя проблема связана с «более сложными». Иногда я должен получать n (n + 1)/2, иногда n (n + 1), но я просто не могу понять , как или почему! Каковы правила ?
Этот вопрос/ответы могут вам помочь: http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it/4852666#4852666 – Pierre
Это означает то же самое: " Большой O из N "==" порядок N "==" O (N) ". Когда мы говорим «в порядке X» в этом контексте, подразумевается, что «X является доминирующим фактором, определяющим сложность выполнения. Для больших входных данных мы можем игнорировать другие факторы». Вы можете видеть, что это означает O (X). –