有两个一维数组中的元素升序排列,编写一个函数将两个数组中的元素归并维一个数组,元素仍然按升序排列

用C++ 编程
正确的程序帮忙写写 各位大侠

这不是最基本的归并排序么。

template<class T>
void joinsort(T* dst, T* src1, T* src2, int length1, int length2)
{
int length = length1+length2;
dst = new T[length];

T* src1end = src1+length1;
T* src2end = src2+length2;
while(src1!=src1end && src2!=src2end)
{
if(*src1<*src2)
{
*dst = *src1;
src1++;
}else
{
*dst = *src2;
src2++;
}
dst++;
}
if(src1!=src1end)
{
memcpy(dst,src1,sizeof(T)*(src1end-src1));
}else
{
memcpy(dst, src2, sizeof(T)*(src2end-src2));
}
}

注意用完之后自行delete[] dst;
另外,你数组里面元素类型要支持<操作符
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜