假设我要打印一个字符串,如下所示:
我们可以假设这个函数的渐进复杂度是什么?
它是 O(n),其中 n 是 strlen(s) - 字符串的长度吗?还是以某种方式为常量时间的 O(1)。或者是其他东西?我想你需要知道 printf 通常是如何实现的。任何见解都将不胜感激!
(我应该澄清一下,我说的是 C 而不是 C++,但我怀疑它们实现上有所不同)
编辑:在 printf() 中添加格式化字符串
printf("%s", s);
我们可以假设这个函数的渐进复杂度是什么?
它是 O(n),其中 n 是 strlen(s) - 字符串的长度吗?还是以某种方式为常量时间的 O(1)。或者是其他东西?我想你需要知道 printf 通常是如何实现的。任何见解都将不胜感激!
(我应该澄清一下,我说的是 C 而不是 C++,但我怀疑它们实现上有所不同)
编辑:在 printf() 中添加格式化字符串
printf("%s", stringName);
。 - Sukrit Kalras="%d"; printf(s);
会导致程序崩溃。复杂度显然是O(n)。 - Dmitry Galchinsky