cs240/labs/lab9/task1/merging.c

38 lines
666 B
C
Raw Normal View History

2018-10-15 17:20:57 -04:00
#include <stdlib.h>
#include "merging.h"
//#include <stdio.h>
int* merging(int* nums1, int* nums2, int size1, int size2) {
int* mergedStart = malloc((size1 + size2) * sizeof(*nums1));
int* merged = mergedStart;
int i = 0;
int j = 0;
while (i + j < size1 + size2) {
//printf("%d %d : %d %d\n", *nums1, *nums2, i, j);
if (i < size1 && j < size2) {
if (*nums1 < *nums2) {
*merged = *nums1;
nums1++;
i++;
} else {
*merged = *nums2;
nums2++;
j++;
}
} else if (i >= size1 && j < size2) {
*merged = *nums2;
nums2++;
j++;
} else {
*merged = *nums1;
nums1++;
i++;
}
merged++;
}
return mergedStart;
}