Much of the work done by an ArrayStack involves shifting (by
and
) and copying (by
) of data.
In a naive implementation, this would be done using
loops.
It
turns out that many programming environments have specific functions
that are very efficient at copying and moving blocks of data. In the C
programming language, there are the
and
functions. In the C++ language there is the
algorithm.
In Java there is the
method.
These functions are usually highly optimized and may even use special
machine instructions that can do this copying much faster than we could by
using a
loop. Although using these functions does not asymptotically
decrease the running times, it can still be a worthwhile optimization.
In our C++ and Java implementations, the use of fast array copying functions resulted in speedups of a factor between 2 and 3, depending on the types of operations performed. Your mileage may vary.
opendatastructures.org