Является ли Big log (logn) базой базы?

285
22

Для двоичного типа дерева поиска структур данных я вижу, что запись Big O обычно обозначается как O (logn). В нижнем регистре "l" в журнале это подразумевает базу данных e (n), как описано натуральным логарифмом? Извините за простой вопрос, но мне всегда было трудно различать разные подразумеваемые логарифмы.

спросил(а) 2020-03-26T17:43:26+03:00 2 месяца назад
1
Решение
283

Значения Big O не зависят от логарифмической базы, поскольку все логарифмы в разных базах связанные постоянным фактором, O(ln n) is эквивалентно O(log n).

введите описание изображения здесь

ответил(а) 2020-03-26T18:01:34.337793+03:00 2 месяца назад
255

Как только они выражены в обозначениях с большими 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(), не имеет значения, какой логарифм используется.

ответил(а) 2020-03-26T17:43:26+03:00 2 месяца назад
112

На самом деле не имеет значения, какова база, так как обычно записывается запись большого О, показывающая только асимптотически высший порядок n, поэтому постоянные коэффициенты будут выпадать. Поскольку другое логарифмическое основание эквивалентно постоянному коэффициенту, оно является излишним.


Тем не менее, я, вероятно, предположил бы базу данных 2.

ответил(а) 2020-03-26T17:43:26+03:00 2 месяца назад
53

Технически база не имеет значения, но вы можете думать об этом как о базовом 2.

ответил(а) 2020-03-26T17:43:26+03:00 2 месяца назад
37

Да, когда речь идет о нотации Big-O, база не имеет значения. Однако при вычислении, когда речь идет о реальной проблеме поиска, это имеет значение.


При разработке интуиции о древовидных структурах полезно понять, что двоичное дерево поиска можно искать в O (n log n), потому что это высота дерева, то есть в двоичном дереве с n узлами, глубина дерева равна O (n log n) (основание 2). Если каждый node имеет троих детей, дерево можно искать в O (n log n), но с логарифмом базы 3. Вычислительно число детей, каждое из которых node может иметь большое влияние на производительность (см. например: текст ссылки)


Наслаждайтесь!


Пол

ответил(а) 2020-03-26T17:43:26+03:00 2 месяца назад
38

Оба правильные. Подумайте об этом


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))

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

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