К какому классу Big O относится функция (1/2)^n?
Чисто с математической точки зрения кажется, что нам придется поместить его в O (1), потому что 1/2 ^ n приближается к 0 для любого достаточно большого n.
Однако, когда дело доходит до асимптотического анализа и большого O, мы склонны много махать руками, а также возвращаться к формулам. 1/2 технически является константой, поэтому, казалось бы, попадет в O (c ^ n).
Я склоняюсь к O(c^n), потому что фраза «половина операции» не имеет смысла, когда речь идет об алгоритмах. Какой алгоритм занимает половину времени по мере увеличения входных данных? В лучшем случае я вижу математическую формулу (1/2)^n, относящуюся к половине некоторой постоянной времени, скажем, к минуте. Итак, (30 секунд)^n становится огромным числом, и функция явно принадлежит O(c^n).
Небольшая помощь?