数组A和B的元素分别有序,给定有m个整数的递增有序数组a[1...m]和有n个整数的递减有序数组b[1..n],预将两组合并到C数组,使C仍有序。

数组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--];
}

猜你喜欢

转载自blog.csdn.net/qq_34752068/article/details/83619270
今日推荐