Для двоичного типа дерева поиска структур данных я вижу, что запись Big O обычно обозначается как O (logn). В нижнем регистре "l" в журнале это подразумевает базу данных e (n), как описано натуральным логарифмом? Извините за простой вопрос, но мне всегда было трудно различать разные подразумеваемые логарифмы.
Является ли Big log (logn) базой базы?
Ответ 1
Как только они выражены в обозначениях с большими O(), оба правильны. Однако при выводе полинома O() в случае двоичного поиска выполняется только log 2. Я предполагаю, что это различие было интуитивным вдохновением для вашего вопроса для начала.
Кроме того, по моему мнению, запись O (log 2 N) лучше для вашего примера, потому что она лучше связывает вывод времени выполнения алгоритма.
В записи с большими O() постоянными факторами удаляются. Преобразование из одной базы логарифмов в другую включает умножение на постоянный коэффициент.
Итак, O (log N) эквивалентен O (log 2 N) из-за постоянного множителя.
Однако, если вы можете легко ввести в свой ответ log 2 N, то это более педагогично. В случае поиска двоичного дерева вы считаете правильным, что log 2 N вводится во время генерации времени выполнения big-O().
Прежде чем выразить результат как примечание большой O(), разница очень важна. При выводе полинома, который должен быть передан с помощью записи с большими выводами, в этом примере было бы неверным использовать логарифм, отличный от log 2 N, до применения O() - обозначения. Как только полином используется для передачи наихудшего времени выполнения через запись с большим значением O(), не имеет значения, какой логарифм используется.
Ответ 2
Значения Big O не зависят от логарифмической базы, поскольку все логарифмы в разных базах связанные постоянным фактором, O(ln n)
is эквивалентно O(log n)
.
Ответ 3
На самом деле не имеет значения, какова база, так как обычно записывается запись большого О, показывающая только асимптотически высший порядок n
, поэтому постоянные коэффициенты будут выпадать. Поскольку другое логарифмическое основание эквивалентно постоянному коэффициенту, оно является излишним.
Тем не менее, я, вероятно, предположил бы базу данных 2.
Ответ 4
Технически база не имеет значения, но вы можете думать об этом как о базовом 2.
Ответ 5
Да, когда речь идет о нотации Big-O, база не имеет значения. Однако при вычислении, когда речь идет о реальной проблеме поиска, это имеет значение.
При разработке интуиции о древовидных структурах полезно понять, что двоичное дерево поиска можно искать в O (n log n), потому что это высота дерева, то есть в двоичном дереве с n узлами, глубина дерева равна O (n log n) (основание 2). Если каждый node имеет троих детей, дерево можно искать в O (n log n), но с логарифмом базы 3. Вычислительно число детей, каждое из которых node может иметь большое влияние на производительность (см. например: текст ссылки)
Наслаждайтесь!
Пол
Ответ 6
Оба правильные. Подумайте об этом
log2(n)=log(n)/log(2)=O(log(n))
log10(n)=log(n)/log(10)=O(log(n))
logE(n)=log(n)/log(E)=O(log(n))