一道算法题之两个有序数组合并

最近面试的时候遇到了一道算法题,两个有序数组合并,要求新的数组也是有序的

此题比较简单,主要是看数组元素进行对比,插入的数组要够大,还有要考虑可能纯在的数组不对称问题,一组数据多的情况,下面上代码

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;
}

你可能感兴趣的:(一道算法题之两个有序数组合并)