我有一个问题:realloc函数的时间复杂度是多少?例如,我有一个整数数组:a [10].当然,数组已经以这种方式动态分配=>
int *a = (int*)malloc(10*sizeof(int));
Run Code Online (Sandbox Code Playgroud)
然后我想将这个数组的大小调整为11,以便为数组a插入一个额外的值,所以我做=>
a = (int*)realloc(a, 11*sizeof(int));
Run Code Online (Sandbox Code Playgroud)
我的问题是:重新分配的时间复杂度是多少?realloc是否只是在数组中添加一个额外的单元格,然后它需要O(1)或者它重新占用整个数组a,添加额外的第11个单元格并返回新大小的数组,在这种情况下,此操作的时间复杂度为O (N)?哪种假设是正确的?