<分区>
我正在将一个没有复制部分的合并排序写入一个额外的临时数组。为此,我创建了一个辅助数组 aux
int * aux
aux = (int *) calloc(n, sizeof(int));
其中 n
是数组的大小。在函数合并中,我想在最后交换两个数组,方法是使用它们的指针继续我的算法。但是如果我交换指针,并将它们打印到控制台,我会得到奇怪的东西:
在方法本身内,指针被交换。但是如果我在我的方法之后检查,回到我的 main 中,指针就不会再交换了。 我的合并方法的调用:
merge(a, lo, mid, hi, aux);
a
是我的主数组,aux
是辅助数组,lo
、mid
和 hi
是整数。
原型(prototype):
void merge(int *a, int lo, int mid, int hi, int *aux);
我试过这样交换它们:
int temp;
temp = a;
a = aux;
aux = temp;
你能帮我解决这个问题吗?
提前致谢!