При выполнении экспоненциального поиска, почему мы выбираем основание экспоненты как 2?

есть именно этот пример на wiki в http://www.sqlalchemy.org/trac/wiki/UsageRecipes/UniqueObject .

Хотя совсем недавно я предпочитал использовать @classmethod для этого вместо того, чтобы переопределять конструктор, поскольку явный лучше, чем неявный, также проще:

user.email = Email.as_unique('foo@bar.com')

(я на самом деле собираюсь обновить wiki, чтобы более полно представить варианты использования здесь)

0
задан alseether 11 March 2019 в 14:43
поделиться

1 ответ

Помимо трудностей реализации, стоимость поиска позиции n с множителем k составляет log (n) / log (k) + log ((k-1) n) + O (1) = log (n) / log (k) + log (n) + log (k-1) + O (1). Увеличивая k, мы можем сделать подход с постоянным множителем, но не достичь 1, но стоимость - это увеличение в постоянном члене. 2 работает достаточно хорошо, я полагаю.

0
ответ дан David Eisenstat 11 March 2019 в 14:43
поделиться
Другие вопросы по тегам:

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