Эта ссылка объясняет это лучше, но алгоритм с порядком O (2 ^ n) обычно является жадным алгоритмом. Самый жадный из всех, кого я знаю, это O (n ^ n). Алгоритм восстановления Фибоначчи, без использования метода запоминания значений, является примером алгоритма O (2 ^ n).
пример (python)
def fib(n):
if n == 0: return 1
if n == 1: return 1
return fib(n-1) + fib(n-2)
В строке 4 мы есть, что функция вызывается дважды. Это означает, что итеративный метод будет вызываться 2 раза за каждый вызов.
Для чего-то строго итеративного вы можете рассмотреть пример (код в python):
def O2n(n):
a = 0
while True:
if a < 2**n:
a = a + 1
else:
break
return a
В коде я заставляю алгоритм быть O (2 ^ n) через условие. Это не практический пример, но с помощью условия можно получить алгоритмы другого порядка.