при вычислении времени выполнения любого алгоритма, мы всегда игнорируем константу такие 3n + 2 = O (n) почему и почему мы игнорируем время выполнения простых операторов. и какая разница между временем выполнения и временем выполнения?как рассчитать время выполнения
ответ
Обозначение Big O представляет собой асимптотическое обозначение, которое получило идею из математики, описывающей поведение функции в «пределах».
Простым способом рассмотрения асимптотических обозначений является то, что он отбрасывает все постоянные факторы в функции. В принципе, n^2 всегда будет больше, если b n, если n достаточно велико (при условии, что все положительно). Изменение постоянных факторов a и b не изменяет этого - оно меняет конкретное значение n, где n^2 больше, но не меняет его. Итак, мы говорим, что O (n^2) больше, чем O (n), и забываем о тех константах, которые мы, вероятно, не можем знать.
- Время компиляции = взять исходный код, сделать исполняемый файл.
- Время выполнения = исполняемый файл принимает вход (от клавиатуры, мыши, сети и т. Д.) И генерирует выходной сигнал.
, если a и b являются большое количество это не делает разницы в расчете?! говорят, что a = 100000 и b = 9000 при вычислении a * n + b = O (n) оно действительно отличается от , но 100000 * n + 9000 –
Рассматривая константы, мы не имеем эффективного изменения, что означает если значение a и b очень велико, a * n + b = O (n) не имеет никакого значения в значении константы. –
Вы вводите в заблуждение алгоритмическую сложность с временем выполнения и временем выполнения. Википедия, вероятно, является хорошим местом для начала. –
Проверьте этот популярный вопрос об сложности алгоритма: http://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-notation/487278#487278 – m69