合并数组

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 可以合并空数组,并且消除两个数组中的重复元素,但如果任意一个数组中有重复元素,那么会破坏结果。

posted @ 2011-08-05 13:16  DOF_KL  阅读(171)  评论(0编辑  收藏  举报