最近面试的时候遇到了一道算法题,两个有序数组合并,要求新的数组也是有序的
此题比较简单,主要是看数组元素进行对比,插入的数组要够大,还有要考虑可能纯在的数组不对称问题,一组数据多的情况,下面上代码
int * mergeArray(int * array1,int size1,int *array2,int size2) {
int index1 = 0;
int index2 = 0;
int index = 0;
int * resTemp = malloc(size1 + size2);
while (index1 < size1 && index2 < size2) {
if (array1[index1] < array2[index2]) {
resTemp[index++] = array1[index1++];
}
else
{
resTemp[index++] = array2[index2++];
}
}
if (index1 < size1) {
resTemp[index++] = array1[index1++];
}
if (index2 < size2) {
resTemp[index++] = array2[index2++];
}
return resTemp;
}