это может быть глупым вопросом, но я хочу вычислить сложность одного из моих алгоритмов, и я не уверен, какая сложность рассмотреть для memmove () функционируют.
Можно ли помочь / объясняют?
void * memmove ( void * destination, const void * source, size_t num );
Так сложность O (цифра) или O (1). Я предполагаю, что это - O (цифра), но я не уверен, поскольку я испытываю недостаток на данный момент в понимании того, что продолжается под капотом.
Поскольку время работы memmove
увеличивается прямо пропорционально количеству байтов, которое требуется переместить, оно равно O (n ).
Что вы применяете операцию memmove ()
к - выбранным элементам в алгоритме или всем им? Вы применяете memmove ()
к элементам более одного раза?
Это то, что будет иметь значение для сложности алгоритма.
Этот ответ может отличаться от сложности самого memmove ()
в отношении массивов элементов char
, с которыми работает memmove ()
(для которых memmove ()
- операция O (n)).