8

这可能是一个愚蠢的问题,但我想计算我的一种算法的复杂性,我不确定memmove()函数要考虑什么复杂性。

你能帮忙/解释一下吗?

void * memmove ( void * destination, const void * source, size_t num );

复杂度 O(num) 或 O(1) 也是如此。我想它是 O(num),但我不确定,因为我现在缺乏对引擎盖下发生的事情的理解。

4

2 回答 2

11

由于运行时间memmove与需要移动的字节数成正比,因此为 O(n)。

于 2010-04-25T21:20:30.453 回答
2

您将memmove()操作应用于算法中的选定元素还是所有这些元素?您是否memmove()不止一次应用于元素?

这些对算法的复杂性很重要。

这个答案可能与它本身关于处理的元素 memmove()数组的复杂性不同(这是一个 O(n) 操作)。charmemmove()memmove()

于 2010-04-26T07:57:32.353 回答