C++中怎样把两个升序数组合并
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中怎样把两个升序数组合并相关的知识,希望对你有一定的参考价值。
如果相同元素可以合并的话。。。。把两个数组放到一个std::set里可以自动排序。。。如果是结构体或者是自己写的类。。重载下小于号
if(xxx < rt.xxx)
return true;
else
return flase;
如果要是相同元素不能合并。。还是老老实实写两个数组排序放到一个里面吧。。
参考技术A C++?直接创建一个set,把两个数组都丢进去,然后排个序就出来了~ 参考技术B 归并排序算法
两个有序数组合并算法
有两个有序数组A和B,如果把A和B合并起来到C中,具体算法如下:
public static int [] MergeArray(int[] ArrayLeft, int[] ArrayRight)//
{
int length = ArrayLeft.Length + ArrayRight.Length;
int[] ArrayMerge = new int[length];
int i = 0;
int j = 0;
while (i < ArrayLeft.Length && j < ArrayRight.Length)
{
if (ArrayLeft[i] > ArrayRight[j])
{
ArrayMerge[i + j] = ArrayRight[j];
j++;
}
else
{
ArrayMerge[i + j] = ArrayLeft[i];
i++;
}
}
while (i < ArrayLeft.Length)
{
ArrayMerge[i + j] = ArrayLeft[i];
i++;
}
while (j < ArrayRight.Length)
{
ArrayMerge[i + j] = ArrayRight[j];
j++;
}
return ArrayMerge;
}
以上是关于C++中怎样把两个升序数组合并的主要内容,如果未能解决你的问题,请参考以下文章