this may be a silly question, but I want to calculate the complexity of one of my algorithms, and I am not sure what complexity to consider for the memmove() function.
Can you please help / explain ?
void * memmove ( void * destination, const void * source, size_t num );
So is the complexity O(num) or O(1). I suppose it's O(num), but I am not sure as I lack for now the understanding of what's going on under the hood.
Since the running time of
memmove
increases in direct proportionality with the number of bytes it is required to move, it is O(n).What are you applying the
memmove()
operation to - selected elements in the algorithm or all of them? Are you applyingmemmove()
to elements more than once?Those are the things that will matter to the algorithm's complexity.
That answer may be different that the complexity of
memmove()
itself regarding the arrays ofchar
elements thatmemmove()
deals with (for whichmemmove()
is an O(n) operation).