两个数组,长度不确定,但是两个数组有序,怎么让你合成一个有序的数组?
#include <iostream>
using namespace std;
int* sort_array(const int* array1,const int* array2,int len1,int len2)
{
int *array3=new int[len1+len2];
memset(array3,0,len1+len2);
int i=0; //标记新数组的游标
int array1_i=0;//标记两个数组的游标位置
int array2_i=0;
while(array1_i<len1&&array2_i<len2)
{
if(array1[array1_i]<=array2[array2_i])
{
array3[i]=array1[array1_i++];
}
else
{
array3[i]=array2[array2_i++];
}
i++;
}
if(array1_i<len1)
{
while(array1_i<len1)
{
array3[i++]=array1[array1_i++];
}
}
else if(array2_i<len2)
{
while(array2_i<len2)
{
array3[i++]=array2[array2_i++];
}
}
return array3;
}
int main(int argc, char *argv[])
{
int len1=5;
int len2=4;
int array1[]={
1,3,5,70,90
};
int array2[]={
2,4,6,18
};
int *array3=sort_array(array1,array2,len1,len2);
for(int i=0;i<len1+len2;i++)
{
cout<<array3[i]<<" ";
}
cout<<endl;
return 0;
}