Your question is very poorly stated, except for the title. There is not a single sentence that is really correct or meaningful semantically.
So I will stick to the title, and explain what is wrongt with the text.
Activation records are a programming language implementation concept. Programming languages
can be used to implement algorithms in programs, but the concept of an
algorithm is an abstract notion, rather than a concrete realization in
a specific programming language.
An activation record is a chunk of memory containing usually the local
data necessary to execute a subprogram call (the name vary with
languages, such as function, procedure, method, subroutine ...), as
well as memory and code control flow. More dynamic parts of the data
used may be stored in other places (heap).
Thus an activation record is not the number of whatever. But the number
activation records in use do, in general, correspond to the number of
calls that have not been returned ... though that is not
necessarily true in some languages (see below).
In simpler programming languages, subprogram calls are well nested so
that the first subprogram to be returned from is the last one that was
called. Hence activation records can be stored on a pushdown stack.
That will not apply to such control structures as coroutines.
Also, it may be that data in activation records can still be used by
the program after the subprogram has been returned. This happens for
example when the result of a subprogram can be another subprogram to
be executed later (I skip the details).
So, in such a case, one may have to keep in memory more activation
records than there are unfinished calls. And the pushdown stack no
longer works properly without specific techniques to handle the problem.
Last, this is a general concept. I have no idea what your input array is for or what it does in your program. So that I cannot answer you. Many programs do not have arrays at all, but do have activation records.