Итак, быстрая мысль; Можно ли утверждать, что O(∞) на самом деле равно O(1)?
- Я имею в виду, что это не зависит от размера ввода?
- Так что в некотором роде она постоянна, хотя и бесконечна.
Или единственный «правильный» способ выразить это O (∞)?
Итак, быстрая мысль; Можно ли утверждать, что O(∞) на самом деле равно O(1)?
Или единственный «правильный» способ выразить это O (∞)?
Бесконечность — это не число или, по крайней мере, не действительное число, поэтому выражение имеет неверный формат. Правильный способ выразить это — просто указать, что программа не завершается. Примечание: программа, а не алгоритм, так как алгоритм гарантированно завершится.
(Если вы хотите, вы можете определить нотацию большого O для трансфинитных чисел. Однако я не уверен, что это будет полезно.)
sort(Lst,Srt) :- permutation(Lst,Srt), sorted(Srt).
, который выполняется за O(n!).)
- person Fred Foo; 12.04.2011
Ваш аргумент не совсем корректен.
Обозначение Big O игнорирует константы, кратные; нет никакой разницы между O(1)
и O(42)
или между O(log(n))
и O(3π log(n))
.
Стандартное соглашение состоит в том, чтобы не использовать какие-либо постоянные кратные числа.
Однако O(∞)
будет означать "алгоритм", который никогда не завершается, в отличие от O(1)
, который завершается в какой-то момент.
strlen
в C, когда ему не задана строка, заканчивающаяся NUL, в которой есть бесконечная память и нет нулей? Чисто гипотетически, но считается ли это?
- person ; 27.06.2011
Чтобы ответить на вопрос:
O-обозначение, O(∞) = O(1)?
Нет
Основное отличие состоит в том, что O(1) закончится в какой-то момент, а O(∞) никогда не закончится.
Оба они не включают переменную, но имеют разные значения:
O(1)
(или O(121) или O(что угодно, но не бесконечность): не зависит от аргументов функции, но заканчивается
O(∞)
: не зависит от аргументов функции и не заканчивается
Как указано в другом ответе, бесконечность на самом деле не относится к области обозначения большого O, но, конечно, остается простое «нет», O (1) и O (∞) не одно и то же.
Big-Oh — это мера того, как масштабируются требуемые ресурсы по мере увеличения N. O(5 часов) и O(5 секунд) равны O(1), так как при увеличении N не требуются дополнительные ресурсы.
O(infinity)
. - person   schedule 12.04.2011