假设您要将长度为n的String转换为长度为n的字符数组。
char [] chArray = someString.toCharArray();
什么是计算复杂度?O(n)或O(1)(n:someString的长度)
我的印象是它所做的只是分配大小为n * sizeof(char)的内存,并将该字符串的副本复制到该位置。因此,复制n个内存单元需要O(n)时间。是吗 ?
或者它可能是O(1),(简单指针重定位或如上所述here)?
答案 0 :(得分:7)
答案是线性时间。
将其视为复制单个字符并将其放入数组中。它取决于元素的数量,因此它是O(n)。
答案 1 :(得分:1)
这是线性时间;它复制,复制需要线性时间。 (常数因子可能很低,但总体上仍然是线性的。)