题目描述:
给定两个数组arrayA[]={1,3,4,12,55,56,71,81}和arrayB[]={2,12,13,19,32,55,57,100};把这两个有序数组合并城一个新的有序数组,并返回该数数组。
函数代码:
#include <iostream>
using namespace std;
int main()
{
int arrayA[]={1,3,4,12,55,56,71,81};
int arrayB[]={2,12,13,19,32,55,57,100};
int na=sizeof(arrayA)/sizeof(arrayA[0]);
int nb=sizeof(arrayB)/sizeof(arrayB[0]);
int i=0,j=0,k=0;
int nc=na+nb;
int arrayC[nc];
while(i<na&&j<nb)
{
if(arrayA[i]<arrayB[j])
{
arrayC[k++]=arrayA[i++];
}
else
{
arrayC[k++]=arrayB[j++];
}
}
while(i<na)
{
arrayC[k++]=arrayA[i++];
}
while(j<nb)
{
arrayC[k++]=arrayB[j++];
}
for(int l=0;l<nc;l++)
{
cout<<arrayC[l]<<" ";
}
return 0;
}
函数代码二:
#include <iostream>
using namespace std;
int fun(int arrayA[],int arrayB[],int na,int nb,int arrayC[],int n)
{
int i=0,j=0,k=0;
while(i<na&&j<nb)
{
if(arrayA[i]<arrayB[j])
{
arrayC[k++]=arrayA[i++];
}
else
{
arrayC[k++]=arrayB[j++];
}
}
while(i<na)
{
arrayC[k++]=arrayA[i++];
}
while(j<nb)
{
arrayC[k++]=arrayB[j++];
}
}
int main()
{
int arrayA[]={1,3,4,12,55,56,71,81};
int arrayB[]={2,12,13,19,32,55,57,100};
int na=sizeof(arrayA)/sizeof(arrayA[0]);
int nb=sizeof(arrayB)/sizeof(arrayB[0]);
int nc=na+nb;
int arrayC[nc];
fun(arrayA,arrayB,na,nb,arrayC,nc);
for(int l=0;l<nc;l++)
{
cout<<arrayC[l]<<" ";
}
return 0;
}