Я думаю, что вы сбиты с толку из-за утверждения O(n + log(n))
, поскольку вы думали, что внешний l oop выполняется logN
раз, а внутренний l oop выполняется N
раз, поэтому ответ должен быть O(NlogN)
, Вы ошибаетесь, потому что внутренний l oop не запускается N
раз, он работает только i
раз, как объяснено. Теперь, когда вы сложите все i
по внешнему l oop, вы получите это 2*2^k - 1
утверждение. Это окажется порядка N
, как указано в объяснении.