设数组A为递增有序数据,其元素个数为m。数组B为递减有序数据,其元素个数为n,将数组A和B合并为一个递增有序数组C。 请根据上面的描述,将程序补充完整。 #include<iostream> using namespace std; void mergeArrays(int A[], int B[], int m, int n, int C[]) { int i=0, j= 第一空 , k=0; while(i<m && j>=0) { if ( 第二空 ) C[k++]=A[i++]; else C[k++]=B[j--]; } while(i<m) C[k++]=A[i++]; while(j>=0) 第三空 ; } void main() { int A[]={1, 3, 5, 7, 9}; int m=sizeof(A) / sizeof(A[0]); int B[]={8, 6, 4, 2}; int n=sizeof(B) / sizeof(B[0]); int C[9]; mergeArrays(A, B, m, n, C); cout << "合并后:"; for (int i=0; i < m + n; i++) cout << C[i] << ' '; }
时间: 2024-04-26 16:25:47 浏览: 37
C语言实现在数组A上有序合并数组B的方法
5星 · 资源好评率100%
void mergeArrays(int A[], int B[], int m, int n, int C[])
{
int i=0, j=n-1, k=0; // 第一个空:j初始化为n-1,即B数组的最后一个元素的下标
while(i<m && j>=0)
{
if (A[i]<B[j]) C[k++]=A[i++]; // 第二个空:如果A[i]小于B[j],则将A[i]放入C数组中,并将i加1
else C[k++]=B[j--]; // 否则将B[j]放入C数组中,并将j减1
}
while(i<m) C[k++]=A[i++]; // 如果A数组还有剩余元素,将其全部放入C数组中
while(j>=0) C[k++]=B[j--]; // 如果B数组还有剩余元素,将其全部放入C数组中
}
阅读全文