数组A和B的元素分别有序,给定有m个整数的递增有序数组a[1…m]和有n个整数的递减有序数组b[1…n],预将两组合并到C数组,使C仍有序。要求写出算法:将递增数组a和递减数组b归并为递增有序数组C[1…m+n]。
void Union(int A[],B[],C[],m,n)
{
i=0;j=n-1;k=0;//i,j,k分别是数组A,B和C的下标,因用C描述,下标从0开始
while(i<m&&j>=0)
if(a[i]<b[j]) c[k++]=a[i++];
else c[k++]=b[j--];
while(i<m) c[k++]=a[i++];
while(j>=0) c[k++]=b[j--];
}