String.toCharArray(),O(n)或O(1)的时间复杂度是多少

C g*_*ics 5 java string

假设您要将长度为n的String转换为长度为n的字符数组.

char [] chArray = someString.toCharArray();
Run Code Online (Sandbox Code Playgroud)

什么是计算复杂度?O(n)或O(1)(n:someString的长度)

我的印象是它所做的就是分配大小为n*sizeof(char)的内存,并将该字符串的副本复制到该位置.因此,复制n个内存单元需要O(n)时间.是吗 ?

或者它可以是O(1),(简单的指针重定位或如所提到的在这里)?

Pio*_*iuk 8

答案是线性时间.

可以将其视为复制单个字符并将其放入数组中.它取决于元素的数量,因此它是O(n).