How would you describe the runtime complexity if I have an algorithm that at each step, the size of the array reduced by an exponentially-increasing amount?
For example, for each step in the algorithm, it is actually processing n - 2^k
items, where k
is the number of steps it has run so far. So for the first step, we process n - 1
items, the second n - 2
, the third n - 4
, the fourth n - 8
, etc. until the subtracted amount exceeds n
and the algorithm is done.