合并数组
int merge(int *p1, int l1, int *p2, int l2, int *p3) {
int l3 = 0, i,j,k;
for(i=0,j=0;i<l1 && j<l2;) {
if(p1[i] < p2[j])
p3[l3++] = p1[i++];
else if(p1[i] > p2[j])
p3[l3++] = p2[j++];
else // equal
i++;
}
while(i<l1)
p3[l3++] = p1[i++];
while(j<l2)
p3[l3++] = p2[j++];
return l3;
}
上述的merge 可以合并空数组,并且消除两个数组中的重复元素,但如果任意一个数组中有重复元素,那么会破坏结果。