Что является основой логарифма для целей алгоритмов?

Многие люди ответили, но никто не упомянул это до сих пор...

Атрибуты используются в большой степени с отражением. Отражение является уже довольно медленным.

Это очень стоящее маркировка Ваших пользовательских атрибутов, как являющихся sealed классы для улучшения их производительности во время выполнения.

Это - также хорошая идея рассмотреть, где было бы уместно использовать, помещают такой атрибут, и приписывать Ваш атрибут (!) для указания на это через AttributeUsage . Список доступных использований атрибута мог бы удивить Вас:

  • блок
  • Модуль
  • Структура Класса
  • Перечисление
  • Конструктор
  • Метод
  • Полевой
  • Интерфейс События
  • Свойства
  • Параметр
  • Делегат
  • ReturnValue
  • GenericParameter
  • Весь

также здорово, что атрибут AttributeUsage является частью подписи атрибута AttributeUsage. Стоп для круговых зависимостей!

[AttributeUsageAttribute(AttributeTargets.Class, Inherited = true)]
public sealed class AttributeUsageAttribute : Attribute

8
задан Rob Hruska 11 April 2012 в 12:19
поделиться

3 ответа

Все логарифмы связаны некоторой константой. (Отсюда и формула замены основания ). Поскольку мы обычно не принимаем во внимание константы при анализе сложности, база не имеет значения.

Обычно при выводе алгоритма базой считается 2. Рассмотрим такую ​​сортировку, как сортировка слиянием . Вы можете построить из него дерево , которое имеет высоту log₂ n , потому что каждый узел имеет две ветви.

15
ответ дан 5 December 2019 в 06:23
поделиться

Это не имеет значения, относительная сложность одинакова независимо от используемой базы.

10
ответ дан 5 December 2019 в 06:23
поделиться

Один из способов думать из этого O (журнал 2 X) = O (журнал 10 X) = O (журнал N X)

1
ответ дан 5 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: